History log of /llvm-project/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp (Results 226 – 250 of 356)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-2.9.0
# d135c696 05-Apr-2011 Bob Wilson <bob.wilson@apple.com>

Clean up some code for clarity.

llvm-svn: 128953


# 7ac53ad6 29-Mar-2011 Owen Anderson <resistor@mac.com>

Check early if this is an unsupported opcode, so that we can avoid needlessly instantiating the base register in some cases.

llvm-svn: 128481


# c48981f7 29-Mar-2011 Owen Anderson <resistor@mac.com>

Add safety check that didn't show up in testing.

llvm-svn: 128467


# d6c5a741 29-Mar-2011 Owen Anderson <resistor@mac.com>

Get rid of the non-writeback versions VLDMDB and VSTMDB, which don't actually exist.

llvm-svn: 128461


Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2
# 42401d6a 15-Mar-2011 Evan Cheng <evan.cheng@apple.com>

Do not form thumb2 ldrd / strd if the offset is by multiple of 4. rdar://9133587

llvm-svn: 127683


Revision tags: llvmorg-2.9.0-rc1
# d9c80ef8 15-Feb-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Teach ARMLoadStoreOptimizer to remove kill flags from merged instructions as well.

This is necessary to avoid a crash in certain tangled situations where a kill
flag is first correctly moved to a me

Teach ARMLoadStoreOptimizer to remove kill flags from merged instructions as well.

This is necessary to avoid a crash in certain tangled situations where a kill
flag is first correctly moved to a merged instruction, and then needs to be
moved again:

STR %R0, a...
STR %R0<kill>, b...

First becomes:

STR %R0, b...
STM a, %R0<kill>, ...

and then:

STM a, %R0, ...
STM b, %R0<kill>, ...

We can now remove the kill flag from the merged STM when needed. 8960050.

llvm-svn: 125591

show more ...


# 0d95ed90 07-Feb-2011 Bob Wilson <bob.wilson@apple.com>

Move code for OffsetCompare struct closer to where it is used.

llvm-svn: 125009


# bbb1a54b 13-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Fix a few more places that should use MBB::getLastNonDebugInstr().

llvm-svn: 123408


# 6eb516db 07-Jan-2011 Evan Cheng <evan.cheng@apple.com>

Do not model all INLINEASM instructions as having unmodelled side effects.
Instead encode llvm IR level property "HasSideEffects" in an operand (shared
with IsAlignStack). Added MachineInstrs::hasUnm

Do not model all INLINEASM instructions as having unmodelled side effects.
Instead encode llvm IR level property "HasSideEffects" in an operand (shared
with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check
the operand when the instruction is an INLINEASM.

This allows memory instructions to be moved around INLINEASM instructions.

llvm-svn: 123044

show more ...


# 914df82a 06-Jan-2011 Bob Wilson <bob.wilson@apple.com>

PR8921: LDM/POP do not support interworking prior to v5t.

llvm-svn: 122970


# b9bd5946 18-Nov-2010 Bill Wendling <isanbard@gmail.com>

Missed the _RET versions of LDMIA.

llvm-svn: 119726


# 11cc1761 17-Nov-2010 Bill Wendling <isanbard@gmail.com>

Add missing opcodes now that this function's used in more than one place.

llvm-svn: 119539


# 7c91bb85 17-Nov-2010 Evan Cheng <evan.cheng@apple.com>

Revert r119109 for now. It's breaking 176.gcc.

llvm-svn: 119492


# b100f917 17-Nov-2010 Bill Wendling <isanbard@gmail.com>

The machine instruction no longer encodes the submode as a separate operand. We
should get the submode from the load/store multiple instruction's opcode.

llvm-svn: 119461


# a68e3a53 16-Nov-2010 Bill Wendling <isanbard@gmail.com>

Encode the multi-load/store instructions with their respective modes ('ia',
'db', 'ib', 'da') instead of having that mode as a separate field in the
instruction. It's more convenient for the asm pars

Encode the multi-load/store instructions with their respective modes ('ia',
'db', 'ib', 'da') instead of having that mode as a separate field in the
instruction. It's more convenient for the asm parser and much more readable for
humans.
<rdar://problem/8654088>

llvm-svn: 119310

show more ...


# dd96e973 15-Nov-2010 Evan Cheng <evan.cheng@apple.com>

Make sure ARM multi load / store pass copies memoperands when forming ldrd / strd. pr8113.

llvm-svn: 119109


# 338de3ee 27-Oct-2010 Jim Grosbach <grosbach@apple.com>

Refactor ARM STR/STRB instruction patterns into STR{B}i12 and STR{B}rs, like
the LDR instructions have. This makes the literal/register forms of the
instructions explicit and allows us to assign sche

Refactor ARM STR/STRB instruction patterns into STR{B}i12 and STR{B}rs, like
the LDR instructions have. This makes the literal/register forms of the
instructions explicit and allows us to assign scheduling itineraries
appropriately. rdar://8477752

llvm-svn: 117505

show more ...


# 2577b2e8 27-Oct-2010 Jim Grosbach <grosbach@apple.com>

One more spot where the new arm mode LDR instruction representation
doesn't need the additional addrmode2 register operand. Missed it the first
time around.

llvm-svn: 117421


# 1e4d9a17 26-Oct-2010 Jim Grosbach <grosbach@apple.com>

First part of refactoring ARM addrmode2 (load/store) instructions to be more
explicit about the operands. Split out the different variants into separate
instructions. This gives us the ability to, am

First part of refactoring ARM addrmode2 (load/store) instructions to be more
explicit about the operands. Split out the different variants into separate
instructions. This gives us the ability to, among other things, assign
different scheduling itineraries to the variants. rdar://8477752.

llvm-svn: 117409

show more ...


# 9302bfdd 26-Oct-2010 Jim Grosbach <grosbach@apple.com>

Grammar.

llvm-svn: 117388


# 77a38320 22-Oct-2010 Evan Cheng <evan.cheng@apple.com>

Transfer implicit ops when forming load multiple and return instructions.

llvm-svn: 117151


Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3
# 97bf2738 29-Sep-2010 Bob Wilson <bob.wilson@apple.com>

Increase ARM APCS preferred alignment for i64 and f64 from 32 bits to 64 bits.
LDM/STM instructions can run one cycle faster on some ARM processors if the
memory address is 64-bit aligned. Radar 848

Increase ARM APCS preferred alignment for i64 and f64 from 32 bits to 64 bits.
LDM/STM instructions can run one cycle faster on some ARM processors if the
memory address is 64-bit aligned. Radar 8489376.

llvm-svn: 115047

show more ...


Revision tags: llvmorg-2.8.0-rc2
# 40e85fbf 15-Sep-2010 Jim Grosbach <grosbach@apple.com>

move getRegisterNumbering() to out of ARMBaseRegisterInfo into the helper
functions in ARMBaseInfo.h so it can be used in the MC library as well.
For anything bigger than this, we may want a means to

move getRegisterNumbering() to out of ARMBaseRegisterInfo into the helper
functions in ARMBaseInfo.h so it can be used in the MC library as well.
For anything bigger than this, we may want a means to have a small support
library for shared helper functions like this. Cross that bridge when we
come to it.

llvm-svn: 114016

show more ...


# ed19768c 10-Sep-2010 Bob Wilson <bob.wilson@apple.com>

Calculate the number of VLDM/VSTM registers by subtracting the number of
fixed operands from the total number of operands (including the variadic ones).

llvm-svn: 113597


# 86172346 10-Sep-2010 Bob Wilson <bob.wilson@apple.com>

Fix merging base-updates for VLDM/VSTM: Before I switched these instructions
to use AddrMode4, there was a count of the registers stored in one of the
operands. I changed that to just count the oper

Fix merging base-updates for VLDM/VSTM: Before I switched these instructions
to use AddrMode4, there was a count of the registers stored in one of the
operands. I changed that to just count the operands but forgot to adjust for
the size of D registers. This was noticed by Evan as a performance problem
but it is a potential correctness bug as well, since it is possible that this
could merge a base update with a non-matching immediate.

llvm-svn: 113576

show more ...


12345678910>>...15