llvm-6502/lib
Jakob Stoklund Olesen f1d015f342 Use ArrayRecycler for MachineInstr operand lists.
Instead of an std::vector<MachineOperand>, use MachineOperand arrays
from an ArrayRecycler living in MachineFunction.

This has several advantages:

- MachineInstr now has a trivial destructor, making it possible to
  delete them in batches when destroying MachineFunction. This will be
  enabled in a later patch.

- Bypassing malloc() and free() can be faster, depending on the system
  library.

- MachineInstr objects and their operands are allocated from the same
  BumpPtrAllocator, so they will usually be next to each other in
  memory, providing better locality of reference.

- Reduce MachineInstr footprint. A std::vector is 24 bytes, the new
  operand array representation only uses 8+4+1 bytes in MachineInstr.

- Better control over operand array reallocations. In the old
  representation, the use-def chains would be reordered whenever a
  std::vector reached its capacity. The new implementation never changes
  the use-def chain order.

Note that some decisions in the code generator depend on the use-def
chain orders, so this patch may cause different assembly to be produced
in a few cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171598 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-05 05:00:09 +00:00
..
Analysis Memory Dependence Analysis: fix a miscompile that uses DT to approxmiate the 2013-01-04 19:19:47 +00:00
Archive Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
AsmParser Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Bitcode Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CodeGen Use ArrayRecycler for MachineInstr operand lists. 2013-01-05 05:00:09 +00:00
DebugInfo Add a space to the end of the line so we don't get "itsbounds" in output. 2013-01-04 18:30:36 +00:00
ExecutionEngine [Object][ELF] Add a maximum alignment. This is used by createELFObjectFile to create a properly aligned reader. 2013-01-04 20:36:28 +00:00
IR Add a method to create an AttributeSet from an AttrBuilder. 2013-01-05 01:36:54 +00:00
Linker Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MC PowerPC: Fix eh_frame relocation for PIC 2013-01-04 19:08:13 +00:00
Object [Object][ELF] Add a maximum alignment. This is used by createELFObjectFile to create a properly aligned reader. 2013-01-04 20:36:28 +00:00
Option Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
Support Eric thought that Darwin was right to use -1 consistently rather than 2013-01-05 00:42:50 +00:00
TableGen Update tablegen parser to allow defm names to start with #NAME. 2012-12-27 06:32:52 +00:00
Target Refactor the ScalarTargetTransformInfo API for querying about the 2013-01-05 03:36:17 +00:00
Transforms Sink the AddressingModeMatcher helper class into an anonymous namespace 2013-01-05 02:09:22 +00:00
CMakeLists.txt Rename VMCore directory to IR. 2013-01-02 09:10:48 +00:00
LLVMBuild.txt Rename VMCore directory to IR. 2013-01-02 09:10:48 +00:00
Makefile Rename VMCore directory to IR. 2013-01-02 09:10:48 +00:00