History log of /llvm-project/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp (Results 51 – 73 of 73)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# a942ad42 09-Nov-2010 Jim Grosbach <grosbach@apple.com>

Change the ARMConstantPoolValue modifier string to an enumeration. This will
help in MC'izing the references that use them.

llvm-svn: 118633


Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3
# 40a42229 24-Sep-2010 Evan Cheng <evan.cheng@apple.com>

Fix a potential null dereference bug.

llvm-svn: 114723


Revision tags: llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0, llvmorg-2.7.0
# bcaf681c 15-Apr-2010 Dan Gohman <gohman@apple.com>

Add const qualifiers to CodeGen's use of LLVM IR constructs.

llvm-svn: 101334


# 7ff83196 07-Nov-2009 Evan Cheng <evan.cheng@apple.com>

- Add TargetInstrInfo::isIdentical(). It's similar to MachineInstr::isIdentical
except it doesn't care if the definitions' virtual registers differ. This is
used by machine LICM and other MI pass

- Add TargetInstrInfo::isIdentical(). It's similar to MachineInstr::isIdentical
except it doesn't care if the definitions' virtual registers differ. This is
used by machine LICM and other MI passes to perform CSE.
- Teach Thumb2InstrInfo::isIdentical() to check two t2LDRpci_pic are identical.
Since pc relative constantpool entries are always different, this requires it
it check if the values can actually the same.

llvm-svn: 86328

show more ...


# 433ab09c 02-Nov-2009 Bob Wilson <bob.wilson@apple.com>

Add support for BlockAddress values in ARM constant pools.

llvm-svn: 85806


Revision tags: llvmorg-2.6.0
# 345a5ae6 01-Sep-2009 Jim Grosbach <grosbach@apple.com>

Fix compiler warnings

llvm-svn: 80650


# 20eac92d 01-Sep-2009 Jim Grosbach <grosbach@apple.com>

Clean up LSDA name generation and use for SJLJ exception handling. This
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be

Clean up LSDA name generation and use for SJLJ exception handling. This
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be even better, but is
beyond the scope of what I'm looking to solve at this point.

Objective C++ code could generate function names that broke the previous
scheme. This fixes that.

llvm-svn: 80649

show more ...


# 43b9ca6f 28-Aug-2009 Evan Cheng <evan.cheng@apple.com>

Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a bunch of nasty code in ARM asm printer.

llvm-svn: 80404


# a6f074fb 23-Aug-2009 Chris Lattner <sabre@nondot.org>

remove various std::ostream version of printing methods from
MachineInstr and MachineOperand. This required eliminating a
bunch of stuff that was using DOUT, I hope that bill doesn't
mind me stealin

remove various std::ostream version of printing methods from
MachineInstr and MachineOperand. This required eliminating a
bunch of stuff that was using DOUT, I hope that bill doesn't
mind me stealing his fun. ;-)

llvm-svn: 79813

show more ...


# 55f1c09e 13-Aug-2009 Owen Anderson <resistor@mac.com>

Push LLVMContexts through the IntegerType APIs.

llvm-svn: 78948


# eda08015 11-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com>

This void is implicit in C++.

llvm-svn: 78678


# 74eb9e7b 11-Aug-2009 Jim Grosbach <grosbach@apple.com>

Move ~ARMConstantPoolValue() to the .cpp file to avoid needing to include <cstdlib> in the header.

llvm-svn: 78665


# 693e36a3 11-Aug-2009 Jim Grosbach <grosbach@apple.com>

SjLj based exception handling unwinding support. This patch is nasty, brutish
and short. Well, it's kinda short. Definitely nasty and brutish.

The front-end generates the register/unregister calls i

SjLj based exception handling unwinding support. This patch is nasty, brutish
and short. Well, it's kinda short. Definitely nasty and brutish.

The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.

Built on Darwin and verified no llvm-core "make check" regressions.

llvm-svn: 78625

show more ...


# d9ef48a7 05-Jun-2009 Dan Gohman <gohman@apple.com>

Remove some unnecessary #includes.

llvm-svn: 72948


# 1fb8aedd 13-Mar-2009 Evan Cheng <evan.cheng@apple.com>

Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections),

Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues.

1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants.
2. MachineConstantPool alignment field is also a log2 value.
3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values.
4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries.
5. Asm printer uses expensive data structure multimap to track constant pool entries by sections.
6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic.


Solutions:
1. ConstantPoolSDNode alignment field is changed to keep non-log2 value.
2. MachineConstantPool alignment field is also changed to keep non-log2 value.
3. Functions that create ConstantPool nodes are passing in non-log2 alignments.
4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT.
5. Asm printer uses cheaper data structure to group constant pool entries.
6. Asm printer compute entry offsets after grouping is done.
7. Change JIT code to compute entry offsets on the fly.

llvm-svn: 66875

show more ...


Revision tags: llvmorg-2.5.0, llvmorg-2.4.0
# 6dd08b66 04-Nov-2008 Evan Cheng <evan.cheng@apple.com>

Handle ARM machine constantpool entries.

llvm-svn: 58671


# de9dbc55 29-Oct-2008 Evan Cheng <evan.cheng@apple.com>

Add debugging support.

llvm-svn: 58408


# 0c19df48 23-Aug-2008 Chris Lattner <sabre@nondot.org>

Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.

Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).

Other interesting changes:
1) This makes Value::print be non-virtual.
2) AP[S]Int and ConstantRange can no longer print to ostream directly,
use raw_ostream instead.
3) This fixes a bug in raw_os_ostream where it didn't flush itself
when destroyed.
4) This adds a new SDNode::print method, instead of only allowing "dump".


A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream
versions.

This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.

llvm-svn: 55263

show more ...


Revision tags: llvmorg-2.3.0, llvmorg-2.2.0
# f3ebc3f3 29-Dec-2007 Chris Lattner <sabre@nondot.org>

Remove attribution from file headers, per discussion on llvmdev.

llvm-svn: 45418


Revision tags: llvmorg-2.1.0, llvmorg-2.0.0
# c39c12a3 27-Apr-2007 Lauro Ramos Venancio <lauro.venancio@gmail.com>

ARM TLS: implement "general dynamic", "initial exec" and "local exec" models.

llvm-svn: 36506


# ee2d164f 22-Apr-2007 Lauro Ramos Venancio <lauro.venancio@gmail.com>

Implement PIC for arm-linux.

llvm-svn: 36324


# 83f35170 30-Jan-2007 Evan Cheng <evan.cheng@apple.com>

- Fix codegen for pc relative constant (e.g. JT) in thumb mode:
.set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
add r1, pc, #PCRELV0
This is not legal since add r1, pc, #c requires t

- Fix codegen for pc relative constant (e.g. JT) in thumb mode:
.set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
add r1, pc, #PCRELV0
This is not legal since add r1, pc, #c requires the constant be a multiple of 4.
Do the following instead:
.set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
mov r1, #PCRELV0
add r1, pc

- In thumb mode, it's not possible to use .set generate a pc relative stub
address. The stub is ARM code which is in a different section from the thumb
code. Load the value from a constpool instead.
- Some asm printing clean up.

llvm-svn: 33664

show more ...


# 10043e21 19-Jan-2007 Evan Cheng <evan.cheng@apple.com>

ARM backend contribution from Apple.

llvm-svn: 33353


123