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 | 2684ddd72e6274be60129d5510d9d5073463d0a4 (patch) | |
tree | 8a1cc576fcd316c88e1fee0e28357f23c0a1d5c0 /lib/Transforms/Scalar/TailRecursionElimination.cpp | |
parent | b725815069b6682f2371dc5da00d1dd85365aa7a (diff) | |
download | llvm-2684ddd72e6274be60129d5510d9d5073463d0a4.tar.gz llvm-2684ddd72e6274be60129d5510d9d5073463d0a4.tar.bz2 llvm-2684ddd72e6274be60129d5510d9d5073463d0a4.tar.xz |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200892 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Scalar/TailRecursionElimination.cpp')
-rw-r--r-- | lib/Transforms/Scalar/TailRecursionElimination.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Transforms/Scalar/TailRecursionElimination.cpp b/lib/Transforms/Scalar/TailRecursionElimination.cpp index 9fb8ddc3d2..351aee058b 100644 --- a/lib/Transforms/Scalar/TailRecursionElimination.cpp +++ b/lib/Transforms/Scalar/TailRecursionElimination.cpp @@ -171,6 +171,9 @@ struct AllocaCaptureTracker : public CaptureTracker { } // end anonymous namespace bool TailCallElim::runOnFunction(Function &F) { + if (skipOptnoneFunction(F)) + return false; + // If this function is a varargs function, we won't be able to PHI the args // right, so don't even try to convert it... if (F.getFunctionType()->isVarArg()) return false; |