diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/MachineFunction.h | 12 | ||||
-rw-r--r-- | include/llvm/Intrinsics.td | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineFunction.h b/include/llvm/CodeGen/MachineFunction.h index a110e5846a..469ae026f0 100644 --- a/include/llvm/CodeGen/MachineFunction.h +++ b/include/llvm/CodeGen/MachineFunction.h @@ -70,6 +70,10 @@ class MachineFunction : private Annotation { const Function *Fn; const TargetMachine &Target; + // HasBuiltinSetjmp - true if the function uses builtin_setjmp. Used to + // adjust callee-saved register tracking. + bool HasBuiltinSetjmp; + // RegInfo - Information about each register in use in the function. MachineRegisterInfo *RegInfo; @@ -123,6 +127,14 @@ public: /// const TargetMachine &getTarget() const { return Target; } + /// doesHaveBuiltinSetjmp - Return whether this function uses builtin_setjmp + /// + bool doesHaveBuiltinSetjmp() const { return HasBuiltinSetjmp; } + + /// setHasBuiltinSetjmp - Mark whether this function uses builtin_setjmp + /// + void setHasBuiltinSetjmp (bool flag) { HasBuiltinSetjmp = flag; } + /// getRegInfo - Return information about the registers currently in use. /// MachineRegisterInfo &getRegInfo() { return *RegInfo; } diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td index 6e4ce82c4c..7c869f0aa3 100644 --- a/include/llvm/Intrinsics.td +++ b/include/llvm/Intrinsics.td @@ -299,6 +299,11 @@ def int_eh_unwind_init: Intrinsic<[llvm_void_ty]>, def int_eh_dwarf_cfa : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty]>; +let Properties = [IntrNoMem] in { +def int_builtinsetjmp : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty]>; +def int_builtinlongjmp : Intrinsic<[llvm_void_ty], [llvm_ptr_ty, llvm_i32_ty]>; +} + //===---------------- Generic Variable Attribute Intrinsics----------------===// // def int_var_annotation : Intrinsic<[llvm_void_ty], |