1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/test/CodeGen
Bob Wilson 6ee6192312 Clean up some problems with extra CFG edges being introduced during
if-conversion.  The RemoveExtraEdges function doesn't work for blocks that
end with unanalyzable branches, so in those cases, the "extra" edges must
be explicitly removed.  The CopyAndPredicateBlock and MergeBlocks methods
can also avoid copying successor edges due to branches that have already
been removed.  The latter case is especially helpful when MergeBlocks is
called for handling "diamond" if-conversions, where otherwise you can end
up with some weird intermediate states in the CFG.  Unfortunately I've
been unable to find cases where this cleanup actually makes a significant
difference in the code.  There is one test where we manage to remove an
empty block at the end of a function.  Radar 6911268.

llvm-svn: 106939
2010-06-26 04:27:33 +00:00
..
Alpha
ARM Thumb2ITBlockPass: Fix a possible dereference of an invalid iterator. This was 2010-06-25 23:14:54 +00:00
Blackfin
CBackend
CellSPU Add the check to the testcase of r106419. 2010-06-21 15:11:51 +00:00
CPP
Generic Move v-binop-widen tests to X86 since they don't work on all platforms 2010-06-22 19:40:50 +00:00
MBlaze
Mips
MSP430
PIC16
PowerPC Eliminate the other half of the BRCOND optimization, and update 2010-06-24 15:24:03 +00:00
SPARC
SystemZ SystemZ really does mean "has calls" and not just "adjusts stack." Go ahead and 2010-05-14 22:17:42 +00:00
Thumb Disable sibcall optimization for Thumb1 for now since Thumb1RegisterInfo::emitEpilogue is not expecting them. 2010-06-19 01:01:32 +00:00
Thumb2 Clean up some problems with extra CFG edges being introduced during 2010-06-26 04:27:33 +00:00
X86 When creating X86 MUL8 and DIV8 instructions, make sure we don't produce 2010-06-26 00:39:23 +00:00
XCore