summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2017-01-20 13:10:12 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2017-01-20 13:10:12 +0000
commit2db2a947f64b9291d6ef445e6df272ae159e0e21 (patch)
tree9b60fe551acb1764e743931f8ee8f5495a2aac22 /lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
parent78bfa04dbe6ab63b19b667f5d0348ad589f7249b (diff)
downloadbcm5719-llvm-2db2a947f64b9291d6ef445e6df272ae159e0e21.tar.gz
bcm5719-llvm-2db2a947f64b9291d6ef445e6df272ae159e0e21.zip
[Thumb] Add support for tMUL in the compare instruction peephole optimizer.
We also want to optimise tests like this: return a*b == 0. The MULS instruction is flag setting, so we don't need the CMP instruction but can instead branch on the result of the MULS. The generated instructions sequence for this example was: MULS, MOVS, MOVS, CMP. The MOVS instruction load the boolean values resulting from the select instruction, but these MOVS instructions are flag setting and were thus preventing this optimisation. Now we first reorder and move the MULS to before the CMP and generate sequence MOVS, MOVS, MULS, CMP so that the optimisation could trigger. Reordering of the MULS and MOVS is safe to do because the subsequent MOVS instructions just set the CPSR register and don't use it, i.e. the CPSR is dead. Differential Revision: https://reviews.llvm.org/D27990 llvm-svn: 292608
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud