diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-08-18 21:25:16 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-08-18 21:25:16 +0000 |
| commit | aab43dbfbbac19cc51c22f2a09aba5d33919a7bb (patch) | |
| tree | d6e16b71fc96671e2d23c02f0855451cb09fa17e /llvm/lib/Analysis/SparsePropagation.cpp | |
| parent | 9282aef86df69235f02ff5d6380d55207e0cce06 (diff) | |
| download | bcm5719-llvm-aab43dbfbbac19cc51c22f2a09aba5d33919a7bb.tar.gz bcm5719-llvm-aab43dbfbbac19cc51c22f2a09aba5d33919a7bb.zip | |
Also pass logical ops to combineSelectAndUse.
Add these transformations to the existing add/sub ones:
(and (select cc, -1, c), x) -> (select cc, x, (and, x, c))
(or (select cc, 0, c), x) -> (select cc, x, (or, x, c))
(xor (select cc, 0, c), x) -> (select cc, x, (xor, x, c))
The selects can then be transformed to a single predicated instruction
by peephole.
This transformation will make it possible to eliminate the ISD::CAND,
COR, and CXOR custom DAG nodes.
llvm-svn: 162176
Diffstat (limited to 'llvm/lib/Analysis/SparsePropagation.cpp')
0 files changed, 0 insertions, 0 deletions

