diff options
author | Duncan Sands <baldrick@free.fr> | 2010-11-10 13:00:08 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2010-11-10 13:00:08 +0000 |
commit | b0579e9d3f1a778b57d5ef8e6eec36e63a596149 (patch) | |
tree | e785635a6fe77b5e64eb20e4c56466905160b522 /lldb/source/Commands/CommandObjectFrame.cpp | |
parent | 23ebef145616858478c2d93f3a42e652dc4182be (diff) | |
download | llvm-b0579e9d3f1a778b57d5ef8e6eec36e63a596149.zip llvm-b0579e9d3f1a778b57d5ef8e6eec36e63a596149.tar.gz llvm-b0579e9d3f1a778b57d5ef8e6eec36e63a596149.tar.bz2 |
Simplify binary operations where one operand is a select instruction.
The simplifications performed here never create new instructions, they
only return existing instructions (or a constant), and so are always a
win. In theory they should transform (for example)
%z = and i32 %x, %y
%s = select i1 %cond, i32 %y, i32 %z
%r = and i32 %x, %s
into
%r = and i32 %x, y
but in practice they get into a fight with instcombine, and lose.
Unfortunately instcombine does a poor job in this case. Nonetheless
I'm committing this transform to make it easier to discuss what to
do to make peace with instcombine.
llvm-svn: 118679
Diffstat (limited to 'lldb/source/Commands/CommandObjectFrame.cpp')
0 files changed, 0 insertions, 0 deletions