diff options
author | Kyle Butt <kyle+llvm@iteratee.net> | 2016-08-24 21:34:24 +0000 |
---|---|---|
committer | Kyle Butt <kyle+llvm@iteratee.net> | 2016-08-24 21:34:24 +0000 |
commit | 6262ca3448e2698e6c65d911f13fc22e4cc40be8 (patch) | |
tree | 4e9499d7edd305d69447bc6f36396b627ffaefae /lldb/packages/Python/lldbsuite/test | |
parent | bcc77b6249a6f193f7322dbb3fdf77482d67bbee (diff) | |
download | bcm5719-llvm-6262ca3448e2698e6c65d911f13fc22e4cc40be8.tar.gz bcm5719-llvm-6262ca3448e2698e6c65d911f13fc22e4cc40be8.zip |
IfConversion: Rescan diamonds.
The cost of predicating a diamond is only the instructions that are not shared
between the two branches. Additionally If a predicate clobbering instruction
occurs in the shared portion of the branches (e.g. a cond move), it may still
be possible to if convert the sub-cfg. This change handles these two facts by
rescanning the non-shared portion of a diamond sub-cfg to recalculate both the
predication cost and whether both blocks are pred-clobbering.
Fixed 2 bugs before recommitting. Branch instructions must be compared and found
identical before diamond conversion. Also, predicate-clobbering instructions in
the shared prefix disqualifies a potential diamond conversion. Includes tests
for both.
llvm-svn: 279670
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
0 files changed, 0 insertions, 0 deletions