OSDN Git Service

Remove a bit more cruft from the sjlj moving to a backend pass.
authorJim Grosbach <grosbach@apple.com>
Mon, 17 Aug 2009 20:25:04 +0000 (20:25 +0000)
committerJim Grosbach <grosbach@apple.com>
Mon, 17 Aug 2009 20:25:04 +0000 (20:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79272 91177308-0d34-0410-b5e6-96231b3b80d8

docs/ExceptionHandling.html
include/llvm/CodeGen/MachineFunction.h
include/llvm/Intrinsics.td
lib/CodeGen/AsmPrinter/DwarfException.cpp
lib/CodeGen/MachineFunction.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp

index 9eb868f..f67954f 100644 (file)
@@ -38,7 +38,6 @@
        <li><a href="#llvm_eh_sjlj_setjmp"><tt>llvm.eh.sjlj.setjmp</tt></a></li>
        <li><a href="#llvm_eh_sjlj_longjmp"><tt>llvm.eh.sjlj.longjmp</tt></a></li>
        <li><a href="#llvm_eh_sjlj_lsda"><tt>llvm.eh.sjlj.lsda</tt></a></li>
-       <li><a href="#llvm_eh_sjlj_callsite"><tt>llvm.eh.sjlj.callsite</tt></a></li>
   </ol></li>
   <li><a href="#asm">Asm Table Formats</a>
   <ol>
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsubsection">
-  <a name="llvm_eh_sjlj_callsite">llvm.eh.sjlj.callsite</a>
-</div>
-
-<div class="doc_text">
-
-<pre>
-  void %<a href="#llvm_eh_sjlj_callsite">llvm.eh.sjlj.callsite</a>(i32)
-</pre>
-
-<p>The SJLJ front-end allocates call site indices for invoke instrucitons.
-   These values are passed to the back-end via the
-   <a href="#llvm_eh_sjlj_callsite"><tt>llvm.eh.sjlj.callsite</tt></a>
-   intrinsic, where they are used to build the LSDA call-site table.</p>
-
-</div>
-
-<!-- ======================================================================= -->
 <div class="doc_section">
   <a name="asm">Asm Table Formats</a>
 </div>
index f30cb82..0d15a95 100644 (file)
@@ -115,15 +115,6 @@ class MachineFunction {
   // The alignment of the function.
   unsigned Alignment;
 
-  // The currently active call_site value
-  unsigned CallSiteIndex;
-
-  // The largest call_site value encountered
-  unsigned MaxCallSiteIndex;
-
-  // Call sites mapped to corresponding landing pads
-  std::map<MachineBasicBlock*, unsigned> LandingPadCallSiteIndexMap;
-
 public:
   MachineFunction(Function *Fn, const TargetMachine &TM);
   ~MachineFunction();
@@ -169,41 +160,6 @@ public:
   ///
   void setAlignment(unsigned A) { Alignment = A; }
 
-  /// getCallSiteIndex() - Get the current call site index
-  ///
-  unsigned getCallSiteIndex() { return CallSiteIndex; }
-
-  /// setCallSiteIndex() - Set the current call site index
-  ///
-  void setCallSiteIndex(unsigned Idx) {
-    CallSiteIndex = Idx;
-    if (CallSiteIndex > MaxCallSiteIndex)
-      MaxCallSiteIndex = CallSiteIndex;
-  }
-
-  /// getMaxCallSiteIndex() - Get the largest call site index issued
-  ///
-  unsigned getMaxCallSiteIndex() { return MaxCallSiteIndex; }
-
-  /// setCallSiteIndexLandingPad() - Map the call site to a landing pad
-  ///
-  void setLandingPadCallSiteIndex(MachineBasicBlock *LandingPad,
-                                  unsigned CallSite) {
-    LandingPadCallSiteIndexMap[LandingPad] = CallSite;
-  }
-
-  /// getCallSiteIndexLandingPad() - Get landing pad for the call site index
-  ///
-  unsigned getLandingPadCallSiteIndex(MachineBasicBlock *LandingPad) {
-    return LandingPadCallSiteIndexMap[LandingPad];
-  }
-
-  /// getCallSiteCount() - Get the count of call site entries
-  ///
-  unsigned getCallSiteCount() {
-    return LandingPadCallSiteIndexMap.size();
-  }
-
   /// MachineFunctionInfo - Keep track of various per-function pieces of
   /// information for backends that would like to do so.
   ///
index 9c4fe1f..552254f 100644 (file)
@@ -310,9 +310,6 @@ let Properties = [IntrNoMem] in {
   def int_eh_sjlj_longjmp : Intrinsic<[llvm_void_ty], [llvm_ptr_ty]>;
   def int_eh_sjlj_lsda    : Intrinsic<[llvm_ptr_ty]>;
 }
-let Properties = [IntrWriteMem] in {
-  def int_eh_sjlj_callsite: Intrinsic<[llvm_void_ty], [llvm_i32_ty]>;
-}
 
 //===---------------- Generic Variable Attribute Intrinsics----------------===//
 //
index dacaf1b..1d773ee 100644 (file)
@@ -640,9 +640,6 @@ void DwarfException::EmitExceptionTable() {
     Asm->EmitULEB128Bytes(SizeSites);
     Asm->EOL("Call-site table length");
 
-
-    assert(MF->getCallSiteCount() == CallSites.size());
-
     // Emit the landing pad site information.
     unsigned idx = 0;
     for (SmallVectorImpl<CallSiteEntry>::const_iterator
index 9efec1c..5958ae2 100644 (file)
@@ -93,9 +93,6 @@ MachineFunction::MachineFunction(Function *F,
                      MachineConstantPool(TM.getTargetData());
   Alignment = TM.getTargetLowering()->getFunctionAlignment(F);
 
-  CallSiteIndex = 0;
-  MaxCallSiteIndex = 0;
-
   // Set up jump table.
   const TargetData &TD = *TM.getTargetData();
   bool IsPic = TM.getRelocationModel() == Reloc::PIC_;
index ebcc2a5..1ba63c0 100644 (file)
@@ -4084,11 +4084,6 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
                              Offset));
     return 0;
   }
-  case Intrinsic::eh_sjlj_callsite: {
-    MachineFunction &MF = DAG.getMachineFunction();
-    MF.setCallSiteIndex(cast<ConstantSDNode>(getValue(I.getOperand(1)))->getZExtValue());
-    return 0;
-  }
   case Intrinsic::convertff:
   case Intrinsic::convertfsi:
   case Intrinsic::convertfui:
@@ -4452,14 +4447,10 @@ void SelectionDAGLowering::LowerCallTo(CallSite CS, SDValue Callee,
   }
 
   if (LandingPad && MMI) {
-    MachineFunction &MF = DAG.getMachineFunction();
     // Insert a label before the invoke call to mark the try range.  This can be
     // used to detect deletion of the invoke via the MachineModuleInfo.
     BeginLabel = MMI->NextLabelID();
 
-    // Map this landing pad to the current call site entry
-    MF.setLandingPadCallSiteIndex(LandingPad, MF.getCallSiteIndex());
-
     // Both PendingLoads and PendingExports must be flushed here;
     // this call might not return.
     (void)getRoot();