diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-04-18 01:05:15 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-04-18 01:05:15 +0000 |
commit | bf1d0f417eebbd25b85b4dac2e7d7a4cc7f45b7b (patch) | |
tree | fcba3458ee8a2e44ab498ce9690ab01fbc0d5fe2 /lib/Transforms/IPO | |
parent | cfe02c46dc7b97adb3c76ce46bc24aff3266df34 (diff) | |
download | llvm-bf1d0f417eebbd25b85b4dac2e7d7a4cc7f45b7b.tar.gz llvm-bf1d0f417eebbd25b85b4dac2e7d7a4cc7f45b7b.tar.bz2 llvm-bf1d0f417eebbd25b85b4dac2e7d7a4cc7f45b7b.tar.xz |
PMBuilder: Expose an option to disable tail calls
Adds API to allow frontends to disable tail calls in PassManagerBuilder.
<rdar://problem/16050591>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206542 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO')
-rw-r--r-- | lib/Transforms/IPO/PassManagerBuilder.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Transforms/IPO/PassManagerBuilder.cpp b/lib/Transforms/IPO/PassManagerBuilder.cpp index 76f7c1098b..052d24f58a 100644 --- a/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -58,6 +58,7 @@ PassManagerBuilder::PassManagerBuilder() { SizeLevel = 0; LibraryInfo = 0; Inliner = 0; + DisableTailCalls = false; DisableUnitAtATime = false; DisableUnrollLoops = false; BBVectorize = RunBBVectorization; @@ -183,7 +184,8 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) { MPM.add(createCFGSimplificationPass()); // Merge & remove BBs MPM.add(createInstructionCombiningPass()); // Combine silly seq's - MPM.add(createTailCallEliminationPass()); // Eliminate tail calls + if (!DisableTailCalls) + MPM.add(createTailCallEliminationPass()); // Eliminate tail calls MPM.add(createCFGSimplificationPass()); // Merge & remove BBs MPM.add(createReassociatePass()); // Reassociate expressions MPM.add(createLoopRotatePass()); // Rotate Loop |