[llvm-commits] [llvm] r71743 - in /llvm/trunk: include/llvm/CodeGen/MachineFunction.h lib/CodeGen/MachineFunction.cpp lib/CodeGen/PrologEpilogInserter.cpp lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp

Jim Grosbach grosbach at apple.com
Wed May 13 16:50:54 PDT 2009


Author: grosbach
Date: Wed May 13 18:50:53 2009
New Revision: 71743

URL: http://llvm.org/viewvc/llvm-project?rev=71743&view=rev
Log:
Removing the HasBuiltinSetjmp flag and associated bits. Flagging the presence
of exception handling builtin sjlj targets in functions turns out not to 
be necessary. Marking the intrinsic implementation in the .td file as 
defining all registers is sufficient to get the context saved properly by 
the containing function.


Modified:
    llvm/trunk/include/llvm/CodeGen/MachineFunction.h
    llvm/trunk/lib/CodeGen/MachineFunction.cpp
    llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp
    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp

Modified: llvm/trunk/include/llvm/CodeGen/MachineFunction.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineFunction.h?rev=71743&r1=71742&r2=71743&view=diff

==============================================================================
--- llvm/trunk/include/llvm/CodeGen/MachineFunction.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineFunction.h Wed May 13 18:50:53 2009
@@ -70,10 +70,6 @@
   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;
 
@@ -127,14 +123,6 @@
   ///
   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; }

Modified: llvm/trunk/lib/CodeGen/MachineFunction.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineFunction.cpp?rev=71743&r1=71742&r2=71743&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/MachineFunction.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineFunction.cpp Wed May 13 18:50:53 2009
@@ -121,7 +121,6 @@
                   MachineRegisterInfo(*TM.getRegisterInfo());
   else
     RegInfo = 0;
-  HasBuiltinSetjmp = false;
   MFInfo = 0;
   FrameInfo = new (Allocator.Allocate<MachineFrameInfo>())
                   MachineFrameInfo(*TM.getFrameInfo());

Modified: llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp?rev=71743&r1=71742&r2=71743&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp (original)
+++ llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp Wed May 13 18:50:53 2009
@@ -180,7 +180,7 @@
   std::vector<CalleeSavedInfo> CSI;
   for (unsigned i = 0; CSRegs[i]; ++i) {
     unsigned Reg = CSRegs[i];
-    if (Fn.getRegInfo().isPhysRegUsed(Reg) || Fn.doesHaveBuiltinSetjmp()) {
+    if (Fn.getRegInfo().isPhysRegUsed(Reg)) {
         // If the reg is modified, save it!
       CSI.push_back(CalleeSavedInfo(Reg, CSRegClasses[i]));
     } else {

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp?rev=71743&r1=71742&r2=71743&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp Wed May 13 18:50:53 2009
@@ -3849,12 +3849,6 @@
   case Intrinsic::longjmp:
     return "_longjmp"+!TLI.usesUnderscoreLongJmp();
     break;
-  case Intrinsic::builtinsetjmp:
-    // Mark this function has using builtin_setjmp so context gets preserved
-    DAG.getMachineFunction().setHasBuiltinSetjmp(true);
-    // Turn it into a target intrinsic node for the codegen
-    visitTargetIntrinsic(I, Intrinsic);
-    return 0;
   case Intrinsic::memcpy: {
     SDValue Op1 = getValue(I.getOperand(1));
     SDValue Op2 = getValue(I.getOperand(2));





More information about the llvm-commits mailing list