llvm-6502/test/CodeGen
Ahmed Bougacha 995f4f8fd1 [CodeGen][IfCvt] Don't re-ifcvt blocks with unanalyzable terminators.
If we couldn't analyze its terminator (i.e., it's an indirectbr, or some
other weirdness), we can't safely re-if-convert a predicated block,
because we can't tell whether the predicated terminator can
fallthrough (it does).

Currently, we would completely ignore the fallthrough successor. In
the added testcase, this means we used to generate:

    ...
  @ %entry:
    cmp   r5, #21
    ittt  ne
  @ %cc1f:
    cmpne r7, #42
  @ %cc2t:
    strne.w       r5, [r8]
    movne pc, r10
  @ %cc1t:
    ...

Whereas the successor of %cc1f was originally %bb1.
With the fix, we get the correct:

    ...
  @ %entry:
    cmp   r5, #21
    itt   eq
  @ %cc1t:
    streq.w       r5, [r11]
    moveq pc, r0
  @ %cc1f:
    cmp   r7, #42
    itt   ne
  @ %cc2t:
    strne.w       r5, [r8]
    movne pc, r10
  @ %bb1:
    ...

rdar://20192768
Differential Revision: http://reviews.llvm.org/D8509


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232872 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-21 01:23:15 +00:00
..
AArch64 [AArch64] Prefer UZP for concat_vector of illegal truncs. 2015-03-21 01:08:39 +00:00
ARM [CodeGen][IfCvt] Don't re-ifcvt blocks with unanalyzable terminators. 2015-03-21 01:23:15 +00:00
BPF [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
CPP [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
Generic Unxfail test/CodeGen/Generic/vector.ll now passing on Hexagon 2015-03-19 20:22:17 +00:00
Hexagon [Hexagon] Add support for vector instructions 2015-03-19 16:33:08 +00:00
Inputs DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
Mips [MIPS] Fix justify error for small structures 2015-03-16 15:01:09 +00:00
MSP430 [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
NVPTX Add support for __nvvm_reflect changes in libdevice in CUDA-7.0 2015-03-19 17:05:35 +00:00
PowerPC Fix a nasty bug in DAGCombine of STORE nodes. 2015-03-19 22:48:57 +00:00
R600 R600/SI: Add missing CHECK-LABEL lines to a test 2015-03-20 03:12:42 +00:00
SPARC [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
SystemZ Change SystemZ large tests to use the existing long_tests property 2015-03-02 19:34:11 +00:00
Thumb [ARM] Fix handling of thumb1 out-of-range frame offsets 2015-03-20 17:20:07 +00:00
Thumb2 Fix a nasty bug in DAGCombine of STORE nodes. 2015-03-19 22:48:57 +00:00
WinEH Fixing a bug with WinEH PHI handling 2015-03-20 21:42:54 +00:00
X86 [X86] Prefer blendps over insertps codegen for one special case 2015-03-20 21:19:52 +00:00
XCore DebugInfo: Fix testcases that fail -verify-debug-info=true 2015-03-16 21:10:12 +00:00