- Jan 31, 2008
-
-
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
llvm-svn: 46605
-
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
-
Dan Gohman authored
with the real FLT_ROUNDS (defined in <float.h>). llvm-svn: 46587
-
Evan Cheng authored
llvm-svn: 46586
-
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
-
- Jan 30, 2008
-
-
Evan Cheng authored
Fixed a bug in MergeValueInAsValue() pointed out by David Greene. Replace val# with previous liverange's. llvm-svn: 46579
-
Evan Cheng authored
Treat the label for the first @llvm.dbg.stoppoint the same way as the dbg_func_start label. Make sure nothing else is inserted before them. Note this solution might be somewhat fragile since ISD::LABEL may be used for other purposes. If that ends up to be an issue, we may need to introduce a different node for debug labels. llvm-svn: 46571
-
Dale Johannesen authored
llvm-svn: 46569
-
Evan Cheng authored
A semi-gross fix for a debug info issue. When inserting the "function start" label (i.e. first label in the entry block) take care to insert it at the beginning of the block. llvm-svn: 46568
-
Dale Johannesen authored
legitimate way of representing global variable GV in debug info. llvm-svn: 46565
-
Evan Cheng authored
Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a proper name. Rename it to EmitInstrWithCustomInserter since it does not necessarily insert instruction at the end. llvm-svn: 46562
-
Dan Gohman authored
memory reference information in the backend. Most of this was written by Florian Brander, cleanup and updating to TOT by me. llvm-svn: 46556
-
Dan Gohman authored
and StoreSDNode into their common base class LSBaseSDNode. Member functions getLoadedVT and getStoredVT are replaced with the common getMemoryVT to simplify code that will handle both loads and stores. llvm-svn: 46538
-
- Jan 29, 2008
-
-
Duncan Sands authored
type that matters but the operand type. This fixes 2008-01-08-IllegalCMP.ll which crashed with the new legalize infrastructure because SETCC with result type i8 and operand type i64 was being custom expanded by the X86 backend. With this fix, the gcc build gets as far as the first libcall. llvm-svn: 46525
-
Dan Gohman authored
llvm-svn: 46514
-
Dan Gohman authored
llvm-svn: 46513
-
Dan Gohman authored
llvm-svn: 46508
-
Duncan Sands authored
to get the alignment of global variables, rather than using hand-made versions. llvm-svn: 46495
-
Owen Anderson authored
llvm-svn: 46488
-
Nate Begeman authored
llvm-svn: 46486
-
Dale Johannesen authored
llvm-svn: 46485
-
- Jan 28, 2008
-
-
Chris Lattner authored
llvm-svn: 46424
-
Chris Lattner authored
llvm-svn: 46422
-
- Jan 27, 2008
-
-
Owen Anderson authored
llvm-svn: 46420
-
Chris Lattner authored
registers if used by a bitconvert or using a bitconvert. This allows us to avoid constant pool loads and use cheaper integer instructions when the values come from or end up in integer regs anyway. For example, we now compile CodeGen/X86/fp-in-intregs.ll to: _test1: movl $2147483648, %eax xorl 4(%esp), %eax ret _test2: movl $1065353216, %eax orl 4(%esp), %eax andl $3212836864, %eax ret Instead of: _test1: movss 4(%esp), %xmm0 xorps LCPI2_0, %xmm0 movd %xmm0, %eax ret _test2: movss 4(%esp), %xmm0 andps LCPI3_0, %xmm0 movss LCPI3_1, %xmm1 andps LCPI3_2, %xmm1 orps %xmm0, %xmm1 movd %xmm1, %eax ret bitconverts can happen due to various calling conventions that require fp values to passed in integer regs in some cases, e.g. when returning a complex. llvm-svn: 46414
-
Chris Lattner authored
For long double constants, print an approximation of their value to the .s file to make it easier to read. llvm-svn: 46407
-
- Jan 26, 2008
-
-
Chris Lattner authored
from the stack. This allows us to compile stack-align.ll to: _test: movsd LCPI1_0, %xmm0 movapd %xmm0, %xmm1 *** andpd 4(%esp), %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test: movsd LCPI1_0, %xmm0 ** movsd 4(%esp), %xmm1 ** andpd %xmm0, %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret llvm-svn: 46401
-
Chris Lattner authored
delete a node even if it was not dead in some cases. Instead, just add it to the worklist. Also, make sure to use the CombineTo methods, as it was doing things that were unsafe: the top level combine loop could touch dangling memory. This fixes CodeGen/Generic/2008-01-25-dag-combine-mul.ll llvm-svn: 46384
-
Chris Lattner authored
don't bother making x&-1 only to simplify it in dag combine. This commonly occurs expanding i64 ops. llvm-svn: 46383
-
Chris Lattner authored
llvm-svn: 46377
-
- Jan 25, 2008
-
-
Chris Lattner authored
llvm-svn: 46355
-
Chris Lattner authored
we can infer it. This will eventually help stuff, though it doesn't do much right now because all fixed FI's have an alignment of 1. llvm-svn: 46349
-
Chris Lattner authored
a reference to TargetFrameInfo. Rearrange order of fields in StackObject to save a word. llvm-svn: 46348
-
Chris Lattner authored
llvm-svn: 46347
-
- Jan 24, 2008
-
-
Chris Lattner authored
llvm-svn: 46320
-
Chris Lattner authored
llvm-svn: 46313
-
Chris Lattner authored
1. we already know the value is dead, so don't bother replacing it with undef. 2. The very case the comment describes actually makes the load live which asserts in deletenode. If we do the replacement and the node becomes live, just treat it as new. This fixes a failure on X86/2008-01-16-InvalidDAGCombineXform.ll with some local changes in my tree. llvm-svn: 46306
-
Chris Lattner authored
dead stuff around. This gets fed into the isel pass and causes certain foldings from happening because nodes have extraneous uses floating around. For example, if we turned foo(bar(x)) -> baz(x), we sometimes left bar(x) around. llvm-svn: 46305
-
Chris Lattner authored
llvm-svn: 46304
-