diff options
author | Aditya Nandakumar <aditya_nandakumar@apple.com> | 2019-01-24 23:11:25 +0000 |
---|---|---|
committer | Aditya Nandakumar <aditya_nandakumar@apple.com> | 2019-01-24 23:11:25 +0000 |
commit | 3ba0d94bcebb7148be5884c7166ed5fda9f9db91 (patch) | |
tree | c547acdf9a3fb2e169b66f5667f9a04c2920c928 /llvm/lib/CodeGen/GlobalISel/Legalizer.cpp | |
parent | 9d53cb8f83bf40993bd90405242f62d7e7b380ce (diff) | |
download | bcm5719-llvm-3ba0d94bcebb7148be5884c7166ed5fda9f9db91.tar.gz bcm5719-llvm-3ba0d94bcebb7148be5884c7166ed5fda9f9db91.zip |
[GISel]: Change how CSE is enabled by default for each pass
https://reviews.llvm.org/D57178
Now add a hook in TargetPassConfig to query if CSE needs to be
enabled. By default this hook returns false only for O0 opt level but
this can be overridden by the target.
As a consequence of the default of enabled for non O0, a few tests
needed to be updated to not use CSE (by passing in -O0) to the run
line.
reviewed by: arsenm
llvm-svn: 352126
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/Legalizer.cpp')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/Legalizer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp b/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp index dcddd671f51..b96827bd857 100644 --- a/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp +++ b/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp @@ -161,9 +161,10 @@ bool Legalizer::runOnMachineFunction(MachineFunction &MF) { } std::unique_ptr<MachineIRBuilder> MIRBuilder; GISelCSEInfo *CSEInfo = nullptr; - bool IsO0 = TPC.getOptLevel() == CodeGenOpt::Level::None; - // Disable CSE for O0. - bool EnableCSE = !IsO0 && EnableCSEInLegalizer; + bool EnableCSE = EnableCSEInLegalizer.getNumOccurrences() + ? EnableCSEInLegalizer + : TPC.isGISelCSEEnabled(); + if (EnableCSE) { MIRBuilder = make_unique<CSEMIRBuilder>(); std::unique_ptr<CSEConfig> Config = make_unique<CSEConfig>(); |