diff options
| author | Paul Robinson <paul_robinson@playstation.sony.com> | 2014-02-06 00:07:05 +0000 |
|---|---|---|
| committer | Paul Robinson <paul_robinson@playstation.sony.com> | 2014-02-06 00:07:05 +0000 |
| commit | af4e64d0955aa47fd6e286ce48eeeed9a9ec7a4a (patch) | |
| tree | f2a3ef5236ee396b9716402af3510a2b1073cc0e /llvm/lib/Transforms/Scalar/SCCP.cpp | |
| parent | f9e58778bc78a4a4714de0e8e66f70614ea28948 (diff) | |
| download | bcm5719-llvm-af4e64d0955aa47fd6e286ce48eeeed9a9ec7a4a.tar.gz bcm5719-llvm-af4e64d0955aa47fd6e286ce48eeeed9a9ec7a4a.zip | |
Disable most IR-level transform passes on functions marked 'optnone'.
Ideally only those transform passes that run at -O0 remain enabled,
in reality we get as close as we reasonably can.
Passes are responsible for disabling themselves, it's not the job of
the pass manager to do it for them.
llvm-svn: 200892
Diffstat (limited to 'llvm/lib/Transforms/Scalar/SCCP.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/SCCP.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/SCCP.cpp b/llvm/lib/Transforms/Scalar/SCCP.cpp index 43647207c2c..02c64d9ea88 100644 --- a/llvm/lib/Transforms/Scalar/SCCP.cpp +++ b/llvm/lib/Transforms/Scalar/SCCP.cpp @@ -1553,6 +1553,9 @@ static void DeleteInstructionInBlock(BasicBlock *BB) { // and return true if the function was modified. // bool SCCP::runOnFunction(Function &F) { + if (skipOptnoneFunction(F)) + return false; + DEBUG(dbgs() << "SCCP on function '" << F.getName() << "'\n"); const DataLayout *TD = getAnalysisIfAvailable<DataLayout>(); const TargetLibraryInfo *TLI = &getAnalysis<TargetLibraryInfo>(); |

