[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)
commit930e05eaefb3ac8275973329bd55b05c4ce8e14c
tree731ef61bec2e80501ab34f059877e957f90ffaa9
parent68f7995d19e8f922b3d8888b5cd1c8ed056b49ae
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236333 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/Thumb2SizeReduction.cpp