History log of /llvm-project/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp (Results 276 – 300 of 356)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 53149401 13-Mar-2010 Bob Wilson <bob.wilson@apple.com>

Combine the code to build VLDM and VSTM instructions, since they are
mostly the same.

llvm-svn: 98402


# af10d27d 12-Mar-2010 Bob Wilson <bob.wilson@apple.com>

Tidy up. No functional changes.

llvm-svn: 98398


# cf6e29a8 04-Mar-2010 Bob Wilson <bob.wilson@apple.com>

pr6480: Don't try producing ld/st-multiple instructions when the address is
an undef value. This is only going to come up for bugpoint-reduced tests --
correct programs will not access memory at und

pr6480: Don't try producing ld/st-multiple instructions when the address is
an undef value. This is only going to come up for bugpoint-reduced tests --
correct programs will not access memory at undefined addresses -- so it's not
worth the effort of doing anything more aggressive.

llvm-svn: 97745

show more ...


# 0b94eb19 24-Feb-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Stay away from str <undef> in ARMLoadStoreOpt. This pass does not understand
<undef> operands, and can cause scavenger failures when it translates
<kill,undef> to <kill>.

llvm-svn: 97046


# 439bda9d 12-Feb-2010 Evan Cheng <evan.cheng@apple.com>

Load / store multiple instructions cannot load / store sp. Sorry, can't come up with a reasonable test case.

llvm-svn: 96023


# bff09064 14-Jan-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Don't fold insufficiently aligned ldr/str into ldm/stm instructions.

An unaligned ldr causes a trap, and is then emulated by the kernel with
awesome performance. The darwin kernel does not emulate u

Don't fold insufficiently aligned ldr/str into ldm/stm instructions.

An unaligned ldr causes a trap, and is then emulated by the kernel with
awesome performance. The darwin kernel does not emulate unaligned ldm/stm
Thumb2 instructions, so don't generate them.

This fixes the miscompilation of Multisource/Applications/JM/lencod for Thumb2.

Generating unaligned ldr/str pairs from a 16-bit aligned memcpy is probably
also a bad idea, but that is beyond the scope of this patch.

llvm-svn: 93393

show more ...


# 398932a6 23-Dec-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Move kill flags when the same register occurs more than once in a sequence.

llvm-svn: 92058


# 0fa4fe0b 23-Dec-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Handle undef operands properly.

llvm-svn: 92054


# 8921d4cd 23-Dec-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Make insert position available to MergeOpsUpdate.
Rearrange arguments.
No functional changes

llvm-svn: 92053


# 64870c5d 23-Dec-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Perform kill flag calculations in new method. No functional changes.

llvm-svn: 92052


# 655e4e60 23-Dec-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Move repeated code to a new method. No functional change.

llvm-svn: 92051


# 740ab38b 19-Dec-2009 Douglas Gregor <dgregor@apple.com>

Fix a bunch of little errors that Clang complains about when its being pedantic

llvm-svn: 91764


# a48f44d9 03-Dec-2009 Chris Lattner <sabre@nondot.org>

improve portability to avoid conflicting with std::next in c++'0x.
Patch by Howard Hinnant!

llvm-svn: 90365


# 66401c90 14-Nov-2009 Evan Cheng <evan.cheng@apple.com>

When expanding t2STRDi8 r, r to two stores, add kill markers correctly.

llvm-svn: 88734


# d7cf55cd 09-Nov-2009 Jim Grosbach <grosbach@apple.com>

Use Unified Assembly Syntax for the ARM backend.

llvm-svn: 86494


# 974e12b2 25-Oct-2009 Nick Lewycky <nicholas@mxc.ca>

Remove includes of Support/Compiler.h that are no longer needed after the
VISIBILITY_HIDDEN removal.

llvm-svn: 85043


# 02d5f77d 25-Oct-2009 Nick Lewycky <nicholas@mxc.ca>

Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit

Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.

llvm-svn: 85042

show more ...


Revision tags: llvmorg-2.6.0
# 943f4f41 22-Oct-2009 Evan Cheng <evan.cheng@apple.com>

Load / store multiple was missing opportunites when the load / store bundles are at the end of the bb. Test case is already in, the bug is exposed by subsequent commit.

llvm-svn: 84842


# 3bbc6c3a 01-Oct-2009 Evan Cheng <evan.cheng@apple.com>

Change ld/st multiples to explicitly model the writeback to base register. This fixes most of the -ldstopti-before-sched2 regressions.

llvm-svn: 83191


# 139c3dba 29-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Fix PR4687. Pre ARMv5te does not support ldrd / strd. Patch by John Tytgat.

llvm-svn: 83058


# a6b9cab8 27-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Enable pre-regalloc load / store multiple pass for Thumb2.

llvm-svn: 82893


# 4a949408 26-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Add comment.

llvm-svn: 82836


# fd6aad7f 25-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Code clean up and prepare for Thumb2 support. No functionality changes.

llvm-svn: 82805


# 48b185d6 25-Sep-2009 Dan Gohman <gohman@apple.com>

Improve MachineMemOperand handling.
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
cre

Improve MachineMemOperand handling.
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
created by isel and live for the remainder of codegen, avoiding a lot of
copying and unnecessary translation. This also shrinks MemSDNode.
- Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
fields for MachineMemOperands.
- Change MemSDNode to have a MachineMemOperand member instead of its own
fields with the same information. This introduces some redundancy, but
it's more consistent with what MachineInstr will eventually want.
- Ignore alignment when searching for redundant loads for CSE, but remember
the greatest alignment.

Target-specific code which previously used MemOperandSDNodes with generic
SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
so that the SelectionDAG framework knows that MachineMemOperand information
is available.

llvm-svn: 82794

show more ...


# a1072a85 11-Sep-2009 Jim Grosbach <grosbach@apple.com>

Update register class references to use the global constant ARM::*RegisterClass names.

llvm-svn: 81556


1...<<1112131415