[ARM] Transfer the internal flag in thumb2 size reduction.
authorPete Cooper <peter_cooper@apple.com>
Fri, 1 May 2015 18:57:32 +0000 (18:57 +0000)
committerPete Cooper <peter_cooper@apple.com>
Fri, 1 May 2015 18:57:32 +0000 (18:57 +0000)
commitf68d5038e643f9c77d9fb527ff2c7ce5d7d8599b
treec6e1eba911d24c8f44d841b22e85cf21bdfcdabe
parente2e72382b94a8fa9f9d6529e25df20f86b1498c4
[ARM] Transfer the internal flag in thumb2 size reduction.

Converting from t2LDRs to tLDRr caused the shift argument to drop the internal flag.  This would then throw machine verifier errors.

Unfortunately i'm having trouble reducing a test case.  I'm going to keep trying, but so far its a scary combination of machine sinking, an 'and i1', loads feeding loads, and a bunch of code which shouldn't change IT block formation, but does.  Its not useful to commit a test in that state as we have no way of knowing if it even hits this code reliably in future.

rdar://problem/20752113

llvm-svn: 236333
llvm/lib/Target/ARM/Thumb2SizeReduction.cpp