[llvm] r253451 - [LTO] Add an early run of functionattrs

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 18 03:24:43 PST 2015


Author: jamesm
Date: Wed Nov 18 05:24:42 2015
New Revision: 253451

URL: http://llvm.org/viewvc/llvm-project?rev=253451&view=rev
Log:
[LTO] Add an early run of functionattrs

Because we internalize early, we can potentially mark a bunch of functions as norecurse. Do this before globalopt.

Modified:
    llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
    llvm/trunk/test/LTO/X86/diagnostic-handler-remarks.ll

Modified: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp?rev=253451&r1=253450&r2=253451&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp Wed Nov 18 05:24:42 2015
@@ -482,6 +482,7 @@ void PassManagerBuilder::addLTOOptimizat
   PM.add(createIPSCCPPass());
 
   // Now that we internalized some globals, see if we can hack on them!
+  PM.add(createFunctionAttrsPass()); // Add norecurse if possible.
   PM.add(createGlobalOptimizerPass());
 
   // Linking modules together can lead to duplicated global constants, only

Modified: llvm/trunk/test/LTO/X86/diagnostic-handler-remarks.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/LTO/X86/diagnostic-handler-remarks.ll?rev=253451&r1=253450&r2=253451&view=diff
==============================================================================
--- llvm/trunk/test/LTO/X86/diagnostic-handler-remarks.ll (original)
+++ llvm/trunk/test/LTO/X86/diagnostic-handler-remarks.ll Wed Nov 18 05:24:42 2015
@@ -32,8 +32,11 @@
 
 target triple = "x86_64-apple-darwin"
 
+declare i32 @bar()
+
 define i32 @foo() {
-  ret i32 7
+  %a = call i32 @bar()
+  ret i32 %a
 }
 
 define i32 @main() {




More information about the llvm-commits mailing list