diff options
author | Charlie Turner <charlie.turner@arm.com> | 2015-08-13 12:38:58 +0000 |
---|---|---|
committer | Charlie Turner <charlie.turner@arm.com> | 2015-08-13 12:38:58 +0000 |
commit | 6153698f26ff8d96e5ca20785e681de3f2e1a68b (patch) | |
tree | 85b74d47215761cfddb852be2cb67d52ebb24d0c /llvm/tools/llvm-objdump/MachODump.cpp | |
parent | 72ab9e5c6c8571b243fdaf60454c648122b210a1 (diff) | |
download | bcm5719-llvm-6153698f26ff8d96e5ca20785e681de3f2e1a68b.tar.gz bcm5719-llvm-6153698f26ff8d96e5ca20785e681de3f2e1a68b.zip |
[InstCombinePHI] Partial simplification of identity operations.
Consider this code:
BB:
%i = phi i32 [ 0, %if.then ], [ %c, %if.else ]
%add = add nsw i32 %i, %b
...
In this common case the add can be moved to the %if.else basic block, because
adding zero is an identity operation. If we go though %if.then branch it's
always a win, because add is not executed; if not, the number of instructions
stays the same.
This pattern applies also to other instructions like sub, shl, shr, ashr | 0,
mul, sdiv, div | 1.
Patch by Jakub Kuderski!
llvm-svn: 244887
Diffstat (limited to 'llvm/tools/llvm-objdump/MachODump.cpp')
0 files changed, 0 insertions, 0 deletions