summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-10-20 21:28:41 +0000
committerTim Northover <tnorthover@apple.com>2014-10-20 21:28:41 +0000
commit4e399f4500051ebc4dce6f9a54a3786967e99eca (patch)
tree50a8a0c4006118fa93c08f8937e9feeb63971480 /cmake
parent2d6aee13e57125f6688ecc79dce9ee48d806ba19 (diff)
ARM: rework Thumb1 frame index rewriting
The previous code had a few problems, motivating the choices here. 1. It could create instructions clobbering CPSR, but the incoming MachineInstr didn't reflect this. A potential source of corruption. This is why the patch has a new PseudoInst for before lowering. 2. Similarly, there was some code to handle the incoming instruction not being ARMCC::AL, but this would have caused massive problems if it was actually invoked when a complex offset needing more than one instruction was requested. 3. It wasn't designed to handle unaligned pointers (or offsets). These should probably be minimised anyway, but the code needs to deal with them properly regardless. 4. It had some rather dubious ad-hoc code to avoid calling emitThumbRegPlusImmediate, a function which should be designed to do precisely this job. We seem to cover the common cases correctly now, and hopefully can enhance emitThumbRegPlusImmediate to handle any extra optimisations we need to add in future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220236 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
0 files changed, 0 insertions, 0 deletions