- Nov 04, 2007
-
-
Chris Lattner authored
regs on x86-64. llvm-svn: 43669
-
- Nov 02, 2007
-
-
Evan Cheng authored
llvm-svn: 43646
-
Evan Cheng authored
llvm-svn: 43630
-
- Oct 31, 2007
-
-
Rafael Espindola authored
and by restructuring the X86 version. New I just have to move this to a common place :-) llvm-svn: 43554
-
Rafael Espindola authored
Now both subtarget define getMaxInlineSizeThreshold and the expansion uses it. This should not change generated code. llvm-svn: 43552
-
Dale Johannesen authored
llvm-svn: 43535
-
- Oct 30, 2007
-
-
Dale Johannesen authored
llvm-svn: 43488
-
- Oct 29, 2007
-
-
Evan Cheng authored
transformation. Previously, it's restricted by ensuring the number of load uses is one. Now the restriction is loosened up by allowing setcc uses to be "extended" (e.g. setcc x, c, eq -> setcc sext(x), sext(c), eq). llvm-svn: 43465
-
Evan Cheng authored
llvm-svn: 43446
-
- Oct 26, 2007
-
-
Evan Cheng authored
Loosen up iv reuse to allow reuse of the same stride but a larger type when truncating from the larger type to smaller type is free. e.g. Turns this loop: LBB1_1: # entry.bb_crit_edge xorl %ecx, %ecx xorw %dx, %dx movw %dx, %si LBB1_2: # bb movl L_X$non_lazy_ptr, %edi movw %si, (%edi) movl L_Y$non_lazy_ptr, %edi movw %dx, (%edi) addw $4, %dx incw %si incl %ecx cmpl %eax, %ecx jne LBB1_2 # bb into LBB1_1: # entry.bb_crit_edge xorl %ecx, %ecx xorw %dx, %dx LBB1_2: # bb movl L_X$non_lazy_ptr, %esi movw %cx, (%esi) movl L_Y$non_lazy_ptr, %esi movw %dx, (%esi) addw $4, %dx incl %ecx cmpl %eax, %ecx jne LBB1_2 # bb llvm-svn: 43375
-
- Oct 21, 2007
-
-
Dale Johannesen authored
Fixes 5550319. llvm-svn: 43205
-
- Oct 19, 2007
-
-
Rafael Espindola authored
To do this it is necessary to add a "always inline" argument to the memcpy node. For completeness I have also added this node to memmove and memset. I have also added getMem* functions, because the extra argument makes it cumbersome to use getNode and because I get confused by it :-) llvm-svn: 43172
-
- Oct 17, 2007
-
-
Chris Lattner authored
loads instead of 1 x i64 loads. This doesn't change any functionality yet. llvm-svn: 43068
-
Chris Lattner authored
llvm-svn: 43066
-
- Oct 16, 2007
-
-
Dale Johannesen authored
llvm-svn: 43033
-
Arnold Schwaighofer authored
was stored to the acutal stack slot before the parameters were lowered to their stack slot. This could cause arguments to be overwritten by the return address if the called function had less parameters than the caller function. The update should remove the last failing test case of llc-beta: SPASS. llvm-svn: 43027
-
- Oct 15, 2007
-
-
Evan Cheng authored
llvm-svn: 43004
-
- Oct 14, 2007
-
-
Evan Cheng authored
llvm-svn: 42962
-
- Oct 12, 2007
-
-
Arnold Schwaighofer authored
llvm-svn: 42935
-
Arnold Schwaighofer authored
for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. llvm-svn: 42934
-
Duncan Sands authored
longer be created for fastcc functions. llvm-svn: 42925
-
Dan Gohman authored
llvm-svn: 42905
-
Dan Gohman authored
llvm-svn: 42881
-
- Oct 11, 2007
-
-
Arnold Schwaighofer authored
enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden llvm-svn: 42870
-
- Oct 09, 2007
-
-
Evan Cheng authored
llvm-svn: 42774
-
- Oct 08, 2007
-
-
Dan Gohman authored
use ISD::{S,U}DIVREM and ISD::{S,U}MUL_HIO. Move the lowering code associated with these operators into target-independent in LegalizeDAG.cpp and TargetLowering.cpp. llvm-svn: 42762
-
- Oct 05, 2007
-
-
Evan Cheng authored
llvm-svn: 42623
-
- Sep 29, 2007
-
-
Evan Cheng authored
llvm-svn: 42459
-
- Sep 28, 2007
-
-
Rafael Espindola authored
The only generated code difference is that now we call memcpy when the size of the array is unknown. This matches GCC behavior and is better since the run time value can be arbitrarily large. llvm-svn: 42433
-
- Sep 26, 2007
-
-
Dale Johannesen authored
llvm-svn: 42368
-
Evan Cheng authored
llvm-svn: 42333
-
- Sep 25, 2007
-
-
Dan Gohman authored
both results with a single div or idiv instruction. This uses new X86ISD nodes for DIV and IDIV which are introduced during the legalize phase so that the SelectionDAG's CSE can automatically eliminate redundant computations. llvm-svn: 42308
-
Dan Gohman authored
the check to see if the assembler supports .loc from X86TargetLowering into the superclass TargetLowering. llvm-svn: 42297
-
Evan Cheng authored
Added support for new condition code modeling scheme (i.e. physical register dependency). These are a bunch of instructions that are duplicated so the x86 backend can support both the old and new schemes at the same time. They will be deleted after all the kinks are worked out. llvm-svn: 42285
-
- Sep 24, 2007
-
-
Dan Gohman authored
instead of ISD::LABEL with a manual .debug_line entry when the assembler supports .file and .loc directives. llvm-svn: 42278
-
Chris Lattner authored
asm to die with: ScheduleDAG.cpp:269: failed assertion `false && "Couldn't find the register class"' instead of: failed assertion `RegMap->getRegClass(VReg) == RC && "Register class of operand and regclass of use don't agree!"' yay. llvm-svn: 42259
-
- Sep 23, 2007
-
-
Dale Johannesen authored
keep f32 in SSE registers and f64 in x87. This is effectively a new codegen mode. Change addLegalFPImmediate to permit float and double variants to do different things. Adjust callers. llvm-svn: 42246
-
- Sep 21, 2007
-
-
Rafael Espindola authored
Implement calls to functions with byval arguments on X86 llvm-svn: 42192
-
Rafael Espindola authored
llvm-svn: 42189
-
- Sep 20, 2007
-
-
Dale Johannesen authored
llvm-svn: 42155
-