History log of /llvm-project/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp (Results 251 – 275 of 356)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0
# 4d30f90e 30-Aug-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Remember to clear the shadow kill flag at the same time as clearing the real
kill flag.

This could cause duplicate kill flags when the same register was used twice in a
continuous sequence of STRs.

Remember to clear the shadow kill flag at the same time as clearing the real
kill flag.

This could cause duplicate kill flags when the same register was used twice in a
continuous sequence of STRs.

There is no small test case. <rdar://problem/8218046>

llvm-svn: 112534

show more ...


# ca5af129 27-Aug-2010 Bob Wilson <bob.wilson@apple.com>

When merging Thumb2 loads/stores, do not give up when the offset is one of
the special values that for ARM would be used with IB or DA modes. Fall
through and consider materializing a new base addre

When merging Thumb2 loads/stores, do not give up when the offset is one of
the special values that for ARM would be used with IB or DA modes. Fall
through and consider materializing a new base address is it would be
profitable.

llvm-svn: 112329

show more ...


# 13ce07fa 27-Aug-2010 Bob Wilson <bob.wilson@apple.com>

Change ARM VFP VLDM/VSTM instructions to use addressing mode #4, just like
all the other LDM/STM instructions. This fixes asm printer crashes when
compiling with -O0. I've changed one of the NEON t

Change ARM VFP VLDM/VSTM instructions to use addressing mode #4, just like
all the other LDM/STM instructions. This fixes asm printer crashes when
compiling with -O0. I've changed one of the NEON tests (vst3.ll) to run
with -O0 to check this in the future.

Prior to this change VLDM/VSTM used addressing mode #5, but not really.
The offset field was used to hold a count of the number of registers being
loaded or stored, and the AM5 opcode field was expanded to specify the IA
or DB mode, instead of the standard ADD/SUB specifier. Much of the backend
was not aware of these special cases. The crashes occured when rewriting
a frameindex caused the AM5 offset field to be changed so that it did not
have a valid submode. I don't know exactly what changed to expose this now.
Maybe we've never done much with -O0 and NEON. Regardless, there's no longer
any reason to keep a count of the VLDM/VSTM registers, so we can use
addressing mode #4 and clean things up in a lot of places.

llvm-svn: 112322

show more ...


# af371b49 27-Aug-2010 Bob Wilson <bob.wilson@apple.com>

Unsigned value cannot be < 0.

llvm-svn: 112300


# a7aed186 06-Aug-2010 Owen Anderson <resistor@mac.com>

Reapply r110396, with fixes to appease the Linux buildbot gods.

llvm-svn: 110460


# bda59bd2 06-Aug-2010 Owen Anderson <resistor@mac.com>

Revert r110396 to fix buildbots.

llvm-svn: 110410


# 755aceb5 05-Aug-2010 Owen Anderson <resistor@mac.com>

Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.

llvm-svn: 110396


# c1eccbc4 29-Jun-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

When no memoperands are present, assume unaligned, volatile.

llvm-svn: 107114


# d2d1ae10 22-Jun-2010 Dan Gohman <gohman@apple.com>

Use pre-increment instead of post-increment when the result is not used.

llvm-svn: 106542


# 1fb4de8e 21-Jun-2010 Evan Cheng <evan.cheng@apple.com>

Fix PR7421: bug in kill transferring logic. It was ignoring loads / stores which have already been processed.

llvm-svn: 106481


# f14e08b0 15-Jun-2010 Jim Grosbach <grosbach@apple.com>

Make sure to skip dbg_value instructions when finding an insertion point for
the combined load/store instruction. rdar://7797940

llvm-svn: 105982


# 5fa0158e 09-Jun-2010 Jim Grosbach <grosbach@apple.com>

be slightly more subtle about skipping dbg_value instructions; otherwise, if a
dbg_value immediately follows a sequence of ldr/str instructions that should
be combined into an ldm/stm and is the last

be slightly more subtle about skipping dbg_value instructions; otherwise, if a
dbg_value immediately follows a sequence of ldr/str instructions that should
be combined into an ldm/stm and is the last instruction in the block, then
combine may end up being skipped.

llvm-svn: 105758

show more ...


# 8fe3cc80 08-Jun-2010 Jim Grosbach <grosbach@apple.com>

fix copy/paste/modify think-o

llvm-svn: 105653


# 3548803f 04-Jun-2010 Jim Grosbach <grosbach@apple.com>

Another fix to prevent debug info from affecting codegen. rdar://7797940

llvm-svn: 105470


# 4e5e6a89 04-Jun-2010 Jim Grosbach <grosbach@apple.com>

more dbg_value adjustments so debug info doesn't affect codegen

llvm-svn: 105454


# 1bcdf32d 04-Jun-2010 Jim Grosbach <grosbach@apple.com>

fix typo

llvm-svn: 105441


# b30b81ed 03-Jun-2010 Jim Grosbach <grosbach@apple.com>

Teach the ARM load-store optimizer to deal with dbg_value instructions.

llvm-svn: 105427


# 84511e15 02-Jun-2010 Jim Grosbach <grosbach@apple.com>

Clean up 80 column violations. No functional change.

llvm-svn: 105350


Revision tags: llvmorg-2.7.0
# 913c9987 15-Apr-2010 Dan Gohman <gohman@apple.com>

Add more const qualifiers for LLVM IR pointers in CodeGen.

llvm-svn: 101342


# bf59859b 26-Mar-2010 Jim Grosbach <grosbach@apple.com>

vldm/vstm can only do up to 16 double-word registers at a time.
Radar 7797856

llvm-svn: 99630


# 162242b6 20-Mar-2010 Bob Wilson <bob.wilson@apple.com>

pr6652: Use LDM to restore PC to the return address on ARMv4.
Patch by John Tytgat!

llvm-svn: 99096


# 466d1e3d 16-Mar-2010 Bob Wilson <bob.wilson@apple.com>

Remove redundant writeback flag in ARM addressing mode 5.

llvm-svn: 98648


# d6243b49 16-Mar-2010 Bob Wilson <bob.wilson@apple.com>

Remove the writeback flag from ARM's address mode 4. Now that we have separate
instructions for ld/st with writeback, the flag is completely redundant.

llvm-svn: 98643


# ba75e816 16-Mar-2010 Bob Wilson <bob.wilson@apple.com>

Wrap a long line and add some parens to be consistent.

llvm-svn: 98596


# 947f04ba 13-Mar-2010 Bob Wilson <bob.wilson@apple.com>

Change ARM ld/st multiple instructions to have variant instructions for
writebacks to the address register. This gets rid of the hack that the
first register on the list was the magic writeback regi

Change ARM ld/st multiple instructions to have variant instructions for
writebacks to the address register. This gets rid of the hack that the
first register on the list was the magic writeback register operand. There
was an implicit constraint that if that operand was not reg0 it had to match
the base register operand. The post-RA scheduler's antidependency breaker
did not understand that constraint and sometimes changed one without the
other. This also fixes Radar 7495976 and should help the verifier work
better for ARM code.

There are now new ld/st instructions explicit writeback operands and explicit
constraints that tie those registers together.

llvm-svn: 98409

show more ...


1...<<1112131415