[PATCH] Remove useless if from DwarfEHPrepare

Kai Nacke kai.nacke at redstar.de
Sun May 26 03:46:35 PDT 2013


Hi!

In DwarfEHPrepare::InsertUnwindResumeCalls() there is a variable 
UsesNewEH which has a default value of false and is set to true if the 
first instruction after the unwind label of the last invoke in the 
function is a landingpad instruction. This should always be the case.

If there are no resume instructions then the value of UsesNewEH is 
returned to the caller and used to indicate if the code has changed.

To me, this looks like a relict from the time the EH mechanism was 
changed. The attached patch removes the test and simply return false if 
nothing was changed.

Please review.

Regards
Kai
-------------- next part --------------
diff --git a/lib/CodeGen/DwarfEHPrepare.cpp b/lib/CodeGen/DwarfEHPrepare.cpp
index ecfe6f3..05ac58a 100644
--- a/lib/CodeGen/DwarfEHPrepare.cpp
+++ b/lib/CodeGen/DwarfEHPrepare.cpp
@@ -106,18 +106,15 @@ Value *DwarfEHPrepare::GetExceptionObject(ResumeInst *RI) {
 /// InsertUnwindResumeCalls - Convert the ResumeInsts that are still present
 /// into calls to the appropriate _Unwind_Resume function.
 bool DwarfEHPrepare::InsertUnwindResumeCalls(Function &Fn) {
-  bool UsesNewEH = false;
   SmallVector<ResumeInst*, 16> Resumes;
   for (Function::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I) {
     TerminatorInst *TI = I->getTerminator();
     if (ResumeInst *RI = dyn_cast<ResumeInst>(TI))
       Resumes.push_back(RI);
-    else if (InvokeInst *II = dyn_cast<InvokeInst>(TI))
-      UsesNewEH = II->getUnwindDest()->isLandingPad();
   }
 
   if (Resumes.empty())
-    return UsesNewEH;
+    return false;
 
   // Find the rewind function if we didn't already.
   if (!RewindFunction) {


More information about the llvm-commits mailing list