- Feb 10, 2008
-
-
Nick Lewycky authored
llvm-svn: 46916
-
Nate Begeman authored
pabs{b,w,d} are not two address fix extract-to-mem sse4 ops add sse4 vector sign extend nodes llvm-svn: 46915
-
- Feb 09, 2008
-
-
Nate Begeman authored
llvm-svn: 46902
-
Nate Begeman authored
llvm-svn: 46901
-
- Feb 08, 2008
-
-
Evan Cheng authored
It's not always safe to fold movsd into xorpd, etc. Check the alignment of the load address first to make sure it's 16 byte aligned. llvm-svn: 46893
-
Dale Johannesen authored
128-bit vectors need it only when SSE is on. llvm-svn: 46890
-
Dan Gohman authored
llvm-svn: 46877
-
Evan Cheng authored
llvm-svn: 46866
-
- Feb 07, 2008
-
-
Dan Gohman authored
to return pointers instead of references, since this is always what is needed. llvm-svn: 46857
-
Dan Gohman authored
llvm-svn: 46854
-
Evan Cheng authored
Before: _main: subq $8, %rsp leaq _X(%rip), %rax movsd 8(%rax), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Now: _main: subq $8, %rsp movsd _X+8(%rip), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Notice there is another idiotic codegen issue that needs to be fixed asap: xorl %ecx, %ecx movl %ecx, %eax llvm-svn: 46850
-
Evan Cheng authored
llvm-svn: 46849
-
- Feb 06, 2008
-
-
Dan Gohman authored
initializer problem, a minor tweak to the way the DAGISelEmitter finds load/store nodes, and a renaming of the new PseudoSourceValue objects. llvm-svn: 46827
-
- Feb 05, 2008
-
-
Evan Cheng authored
Move to getCALLSEQ_END to ensure CALLSEQ_END node produces a flag. This is consistent with the definition in td file. llvm-svn: 46775
-
Dale Johannesen authored
llvm-svn: 46764
-
Nate Begeman authored
llvm-svn: 46746
-
Evan Cheng authored
Dwarf requires variable entries to be in the source order. Right now, since we are recording variable information at isel time this means parameters would appear in the reverse order. The short term fix is to issue recordVariable() at asm printing time instead. llvm-svn: 46724
-
Nate Begeman authored
llvm-svn: 46723
-
- Feb 04, 2008
-
-
Nate Begeman authored
llvm-svn: 46720
-
Nate Begeman authored
Evan's help with the rest. llvm-svn: 46697
-
Nate Begeman authored
llvm-svn: 46696
-
- Feb 03, 2008
-
-
Nate Begeman authored
llvm-svn: 46681
-
Chris Lattner authored
llvm-svn: 46676
-
Chris Lattner authored
llvm-svn: 46673
-
- Feb 02, 2008
-
-
Evan Cheng authored
llvm-svn: 46667
-
Nick Lewycky authored
llvm-svn: 46666
-
Evan Cheng authored
llvm-svn: 46665
-
Evan Cheng authored
SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. llvm-svn: 46659
-
Evan Cheng authored
llvm-svn: 46655
-
- Feb 01, 2008
-
-
Lauro Ramos Venancio authored
llvm-svn: 46646
-
Evan Cheng authored
Remove the nasty LABEL hack with a much less evil one. Now llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before. llvm-svn: 46635
-
- Jan 31, 2008
-
-
Evan Cheng authored
llvm-svn: 46623
-
Evan Cheng authored
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. llvm-svn: 46609
-
Christopher Lamb authored
Allow ComplexExpressions in InstrInfo.td files to be slightly more... complex! ComplexExpressions can now have attributes which affect how TableGen interprets the pattern when generating matchin code. The first (and currently, only) attribute causes the immediate parent node of the ComplexPattern operand to be passed into the matching code rather than the node at the root of the entire DAG containing the pattern. llvm-svn: 46606
-
Evan Cheng authored
llvm-svn: 46598
-
Evan Cheng authored
MRegisterInfo::getLocation() is a really bad idea. Its function is to calculate the offset from frame pointer to a stack slot and then storing the delta in a MachineLocation object. The name is bad (it implies a getter), and MRegisterInfo doesn't need to know about MachineLocation. Replace getLocation() with getFrameIndexOffset() which returns the delta from frame pointer to stack slot. Dwarf writer can then use the information for whatever it wants. llvm-svn: 46597
-
Evan Cheng authored
llvm-svn: 46596
-
Dan Gohman authored
llvm-svn: 46590
-
Dan Gohman authored
with the real FLT_ROUNDS (defined in <float.h>). llvm-svn: 46587
-
Dan Gohman authored
in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now. Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects. Most of this was written by Florian Brander, some reorganization and updating to TOT by me. llvm-svn: 46585
-