diff options
author | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2016-05-10 09:24:49 +0000 |
---|---|---|
committer | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2016-05-10 09:24:49 +0000 |
commit | 333ef381b87c65476fb37cbb458f80c8f4d80d9c (patch) | |
tree | 4264f04c2b008aef01acef1cf0622e02694539c4 /llvm/lib/Transforms/InstCombine/InstCombineInternal.h | |
parent | 7bb1c049437b1abbf095b07bde217ac023e69643 (diff) | |
download | bcm5719-llvm-333ef381b87c65476fb37cbb458f80c8f4d80d9c.tar.gz bcm5719-llvm-333ef381b87c65476fb37cbb458f80c8f4d80d9c.zip |
[InstCombine] Remove trivially empty va_start/va_end and va_copy/va_end ranges.
When a va_start or va_copy is immediately followed by a va_end (ignoring
debug information or other start/end in between), then it is safe to
remove the pair. As this code shares some commonalities with the lifetime
markers, this has been factored to helper functions.
This InstCombine pattern kicks-in 3 times when running the LLVM test
suite.
llvm-svn: 269033
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineInternal.h')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineInternal.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h index b1e3881c75f..e66c89b500b 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h +++ b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h @@ -330,6 +330,8 @@ public: Instruction *visitShuffleVectorInst(ShuffleVectorInst &SVI); Instruction *visitExtractValueInst(ExtractValueInst &EV); Instruction *visitLandingPadInst(LandingPadInst &LI); + Instruction *visitVAStartInst(VAStartInst &I); + Instruction *visitVACopyInst(VACopyInst &I); // visitInstruction - Specify what to return for unhandled instructions... Instruction *visitInstruction(Instruction &I) { return nullptr; } |