llvm-project/llvm/test/CodeGen/ARM/Windows
Saleem Abdulrasool bfa25bd1ac ARM: workaround bundled operation predication
This is a Windows ARM specific issue.  If the code path in the if conversion
ends up using a relocation which will form a IMAGE_REL_ARM_MOV32T, we end up
with a bundle to ensure that the mov.w/mov.t pair is not split up.  This is
normally fine, however, if the branch is also predicated, then we end up trying
to predicate the bundle.

For now, report a bundle as being unpredicatable.  Although this is false, this
would trigger a failure case previously anyways, so this is no worse.  That is,
there should not be any code which would previously have been if converted and
predicated which would not be now.

Under certain circumstances, it may be possible to "predicate the bundle".  This
would require scanning all bundle instructions, and ensure that the bundle
contains only predicatable instructions, and converting the bundle into an IT
block sequence.  If the bundle is larger than the maximal IT block length (4
instructions), it would require materializing multiple IT blocks from the single
bundle.

llvm-svn: 280689
2016-09-06 04:00:12 +00:00
..
aapcs.ll
alloca.ll [RegAllocFast] Properly track the physical register definitions on calls. 2016-02-20 00:32:29 +00:00
builtin_longjmp.ll ARM: support high registers in __builtin_longjmp on WoA 2016-07-08 00:48:22 +00:00
chkstk-movw-movt-isel.ll ARM: fix __chkstk Frame Setup on WoA 2016-04-24 20:12:48 +00:00
chkstk.ll ARM: fix __chkstk Frame Setup on WoA 2016-04-24 20:12:48 +00:00
dbzchk.ll ARM: fix __chkstk Frame Setup on WoA 2016-04-24 20:12:48 +00:00
division.ll ARM: fix test for Windows division 2016-04-22 01:03:38 +00:00
dllexport.ll ARM: support export directives for Windows 2016-05-14 18:58:34 +00:00
dllimport.ll
frame-register.ll
global-minsize.ll
hard-float.ll
if-cvt-bundle.ll ARM: workaround bundled operation predication 2016-09-06 04:00:12 +00:00
libcalls.ll ARM: address WOA unsigned division overflow crash 2015-11-26 15:34:03 +00:00
long-calls.ll ARM: fix `-mlong-calls` for WoA 2016-07-05 18:30:52 +00:00
mangling.ll
memset.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
mov32t-bundling.ll
movw-movt-relocations.ll
no-aeabi.ll ARM: fix __chkstk Frame Setup on WoA 2016-04-24 20:12:48 +00:00
no-arm-mode.ll
no-eabi.ll ARM: only emit EABI attributes on EABI targets 2015-12-13 05:27:45 +00:00
no-ehabi.ll
no-frame-register.ll ARM: tweak WoA frame lowering 2015-10-09 03:19:03 +00:00
pic.ll
read-only-data.ll
stack-probe-non-default.ll
structors.ll
tls.ll ARM: correct TLS access on WoA 2016-06-07 03:15:07 +00:00
trivial-gnu-object.ll
vla.ll