- Sep 27, 2009
-
-
Evan Cheng authored
llvm-svn: 82893
-
- Sep 26, 2009
-
-
Evan Cheng authored
llvm-svn: 82838
-
Evan Cheng authored
llvm-svn: 82837
-
Evan Cheng authored
llvm-svn: 82836
-
Anton Korobeynikov authored
llvm-svn: 82814
-
- Sep 25, 2009
-
-
Evan Cheng authored
llvm-svn: 82805
-
Dan Gohman authored
- 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
-
Dan Gohman authored
naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. llvm-svn: 82790
-
David Goodwin authored
llvm-svn: 82788
-
Bob Wilson authored
llvm-svn: 82773
-
Bob Wilson authored
For the AAPCS ABI, SP must always be 4-byte aligned, and at any "public interface" it must be 8-byte aligned. For the older ARM APCS ABI, the stack alignment is just always 4 bytes. For X86, we currently align SP at entry to a function (e.g., to 16 bytes for Darwin), but no stack alignment is needed at other times, such as for a leaf function. After discussing this with Dan, I decided to go with the approach of adding a new "TransientStackAlignment" field to TargetFrameInfo. This value specifies the stack alignment that must be maintained even in between calls. It defaults to 1 except for ARM, where it is 4. (Some other targets may also want to set this if they have similar stack requirements. It's not currently required for PPC because it sets targetHandlesStackFrameRounding and handles the alignment in target-specific code.) The existing StackAlignment value specifies the alignment upon entry to a function, which is how we've been using it anyway. llvm-svn: 82767
-
Jim Grosbach authored
interest for this, as it currently reserves a register rather than using the scavenger for matierializing constants as needed. Instead of scavenging registers on the fly while eliminating frame indices, new virtual registers are created, and then a scavenged collectively in a post-pass over the function. This isolates the bits that need to interact with the scavenger, and sets the stage for more intelligent use, and reuse, of scavenged registers. For the time being, this is disabled by default. Once the bugs are worked out, the current scavenging calls in replaceFrameIndices() will be removed and the post-pass scavenging will be the default. Until then, -enable-frame-index-scavenging enables the new code. Currently, only the Thumb1 back end is set up to use it. llvm-svn: 82734
-
- Sep 24, 2009
-
-
David Goodwin authored
llvm-svn: 82709
-
- Sep 23, 2009
-
-
David Goodwin authored
llvm-svn: 82657
-
Anton Korobeynikov authored
This fixes PR5031. Unfortunately, there is no small testcase :( llvm-svn: 82643
-
- Sep 21, 2009
-
-
David Goodwin authored
llvm-svn: 82483
-
Daniel Dunbar authored
assert if the setModuleInfo hasn't been called. llvm-svn: 82441
-
- Sep 19, 2009
-
-
Evan Cheng authored
Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. llvm-svn: 82311
-
- Sep 18, 2009
-
-
Bob Wilson authored
llvm-svn: 82284
-
Evan Cheng authored
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. llvm-svn: 82273
-
- Sep 16, 2009
-
-
Bob Wilson authored
llvm-svn: 82074
-
Bob Wilson authored
llvm-svn: 81969
-
Bob Wilson authored
llvm-svn: 81966
-
Bob Wilson authored
Radar 7200803. (This should also fix the SingleSource/UnitTests/Vector/sumarray-dbl test.) llvm-svn: 81959
-
- Sep 15, 2009
-
-
Bob Wilson authored
VLDM/VSTM instructions, and without this check, the code assumes that an offset is allowed, as it would be with VLDR/VSTR. The asm printer, however, silently drops the offset, producing incorrect code. Since the address register in this case is either the stack or frame pointer, the spill location ends up conflicting with some other stack slot or with outgoing arguments on the stack. llvm-svn: 81879
-
Sandeep Patel authored
llvm-svn: 81878
-
Ted Kremenek authored
llvm-svn: 81827
-
Kevin Enderby authored
parses the .word directive as 4 bytes and ARMAsmParser::ParseInstruction will give an error is called. Broke out the test of the .word directive into two different test cases, one for x86 and one for arm. llvm-svn: 81817
-
- Sep 14, 2009
-
-
Jim Grosbach authored
llvm-svn: 81773
-
- Sep 13, 2009
-
-
Chris Lattner authored
llvm-svn: 81714
-
Chris Lattner authored
the object, make it static instead of const. llvm-svn: 81711
-
Chris Lattner authored
Nothing is using this info yet. llvm-svn: 81707
-
Chris Lattner authored
now that printBasicBlockLabel is only used for starting a MBB. This allows elimination of a bunch of arguments. llvm-svn: 81684
-
Chris Lattner authored
instead. llvm-svn: 81677
-
Anton Korobeynikov authored
llvm-svn: 81658
-
Anton Korobeynikov authored
with subreg - superreg mapping and also fix PR4965. llvm-svn: 81657
-
Anton Korobeynikov authored
constraint the register usage. llvm-svn: 81635
-
- Sep 11, 2009
-
-
Jim Grosbach authored
llvm-svn: 81560
-
Jim Grosbach authored
llvm-svn: 81556
-
- Sep 10, 2009
-
-
Evan Cheng authored
llvm-svn: 81422
-