mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 06:32:24 +00:00
[GMR] Add a flag to enable GlobalsModRef in the normal compilation
pipeline. Even before I started improving its runtime, it was already crazy fast once the call graph exists, and if we can get it to be conservatively correct, will still likely catch a lot of interesting and useful cases. So it may well be useful to enable by default. But more importantly for me, this should make it easier for me to test that changes aren't breaking it in fundamental ways by enabling it for normal builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242895 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
55556435fd
commit
c63b4b9f3a
@ -89,6 +89,11 @@ static cl::opt<bool> EnableLoopDistribute(
|
|||||||
"enable-loop-distribute", cl::init(false), cl::Hidden,
|
"enable-loop-distribute", cl::init(false), cl::Hidden,
|
||||||
cl::desc("Enable the new, experimental LoopDistribution Pass"));
|
cl::desc("Enable the new, experimental LoopDistribution Pass"));
|
||||||
|
|
||||||
|
static cl::opt<bool> EnableNonLTOGlobalsModRef(
|
||||||
|
"enable-non-lto-gmr", cl::init(false), cl::Hidden,
|
||||||
|
cl::desc(
|
||||||
|
"Enable the GlobalsModRef AliasAnalysis outside of the LTO pipeline."));
|
||||||
|
|
||||||
PassManagerBuilder::PassManagerBuilder() {
|
PassManagerBuilder::PassManagerBuilder() {
|
||||||
OptLevel = 2;
|
OptLevel = 2;
|
||||||
SizeLevel = 0;
|
SizeLevel = 0;
|
||||||
@ -213,6 +218,12 @@ void PassManagerBuilder::populateModulePassManager(
|
|||||||
MPM.add(createCFGSimplificationPass()); // Clean up after IPCP & DAE
|
MPM.add(createCFGSimplificationPass()); // Clean up after IPCP & DAE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (EnableNonLTOGlobalsModRef)
|
||||||
|
// We add a module alias analysis pass here. In part due to bugs in the
|
||||||
|
// analysis infrastructure this "works" in that the analysis stays alive
|
||||||
|
// for the entire SCC pass run below.
|
||||||
|
MPM.add(createGlobalsModRefPass());
|
||||||
|
|
||||||
// Start of CallGraph SCC passes.
|
// Start of CallGraph SCC passes.
|
||||||
if (!DisableUnitAtATime)
|
if (!DisableUnitAtATime)
|
||||||
MPM.add(createPruneEHPass()); // Remove dead EH info
|
MPM.add(createPruneEHPass()); // Remove dead EH info
|
||||||
|
Loading…
x
Reference in New Issue
Block a user