llvm-6502/test/CodeGen/Thumb
Renato Golin 2d89932fb2 Fix a bug in the Thumb1 ARM Load/Store optimizer
Previously, the basic block was searched for future uses of the base register,
and if necessary any writeback to the base register was reset using a SUB
instruction (e.g. before calling a function) just before such a use. However,
this step happened *before* the merged LDM/STM instruction was built. So if
there was (e.g.) a function call directly after the not-yet-formed LDM/STM,
the pass would first insert a SUB instruction to reset the base register,
and then (at the same location, incorrectly) insert the LDM/STM itself.

This patch fixes PR19972. Patch by Moritz Roth.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210542 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-10 16:39:21 +00:00
..
2007-01-31-RegInfoAssert.ll
2007-02-02-JoinIntervalsCrash.ll
2007-05-05-InvalidPushPop.ll
2009-06-18-ThumbCommuteMul.ll
2009-07-20-TwoAddrBug.ll
2009-07-27-PEIAssert.ll
2009-08-12-ConstIslandAssert.ll
2009-08-12-RegInfoAssert.ll
2009-08-20-ISelBug.ll
2009-12-17-pre-regalloc-taildup.ll
2010-06-18-SibCallCrash.ll
2010-07-01-FuncAlign.ll
2010-07-15-debugOrdering.ll
2011-05-11-DAGLegalizer.ll
2011-06-16-NoGPRs.ll
2011-EpilogueBug.ll
2012-04-26-M0ISelBug.ll
2014-06-10-thumb1-ldst-opt-bug.ll Fix a bug in the Thumb1 ARM Load/Store optimizer 2014-06-10 16:39:21 +00:00
asmprinter-bug.ll
barrier.ll
cortex-m0-unaligned-access.ll
DbgValueOtherTargets.test
dyn-stackalloc.ll
fpconv.ll
fpow.ll
frame_thumb.ll
iabs.ll
inlineasm-imm-thumb.ll
inlineasm-thumb.ll
ispositive.ll
large-stack.ll
ldr_ext.ll
ldr_frame.ll
lit.local.cfg
long_shift.ll
long-setcc.ll
long.ll
mature-mc-support.ll
mul.ll
pop.ll
PR17309.ll
push.ll
rev.ll
segmented-stacks-dynamic.ll
segmented-stacks.ll
select.ll
sjljehprepare-lower-vector.ll
stack-coloring-without-frame-ptr.ll
stack-frame.ll
thumb-imm.ll
thumb-ldm.ll
thumb-memcpy-ldm-stm.ll
trap.ll
triple.ll
tst_teq.ll
unord.ll
vargs.ll