[llvm-commits] [llvm] r127976 - /llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp

Anders Carlsson andersca at mac.com
Sun Mar 20 13:21:33 PDT 2011


Author: andersca
Date: Sun Mar 20 15:21:33 2011
New Revision: 127976

URL: http://llvm.org/viewvc/llvm-project?rev=127976&view=rev
Log:
Don't try to eliminate invokes to __cxa_atexit.

Modified:
    llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp

Modified: llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=127976&r1=127975&r2=127976&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp Sun Mar 20 15:21:33 2011
@@ -2780,6 +2780,12 @@
     if (!CS)
       continue;
 
+    // We're only interested in calls. Theoretically, we could handle invoke
+    // instructions as well, but neither llvm-gcc nor clang generate invokes
+    // to __cxa_atexit.
+    if (!CS.isCall())
+      continue;
+
     Function *DtorFn = 
       dyn_cast<Function>(CS.getArgument(0)->stripPointerCasts());
     if (!DtorFn)





More information about the llvm-commits mailing list