#
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
|