- Aug 04, 2005
-
-
Nate Begeman authored
Scalar SSE: a < b ? c : 0.0 -> cmpss, andps Scalar SSE: float -> i16 needs to be promoted llvm-svn: 22637
-
Andrew Lenharth authored
llvm-svn: 22634
-
- Aug 03, 2005
-
-
Misha Brukman authored
llvm-svn: 22619
-
Chris Lattner authored
llvm-svn: 22617
-
- Aug 02, 2005
-
-
Chris Lattner authored
llvm-svn: 22596
-
Chris Lattner authored
llvm-svn: 22595
-
Chris Lattner authored
Patch contributed by Jim Laskey! llvm-svn: 22594
-
Chris Lattner authored
llvm-svn: 22588
-
- Aug 01, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22571
-
Andrew Lenharth authored
llvm-svn: 22569
-
- Jul 30, 2005
-
-
Jeff Cohen authored
llvm-svn: 22565
-
Chris Lattner authored
llvm-svn: 22561
-
Chris Lattner authored
1 byte loads and other operations. This is bad for store-forwarding on common CPUs. We now do this: fnstcw WORD PTR [%ESP] mov %AX, WORD PTR [%ESP] instead of: fnstcw WORD PTR [%ESP] mov %AL, BYTE PTR [%ESP + 1] llvm-svn: 22559
-
Chris Lattner authored
FP-to-int-in-memory: this exposes the load from the stored slot to the selection dag, allowing it to be folded into other operaions. llvm-svn: 22556
-
Andrew Lenharth authored
llvm-svn: 22553
-
- Jul 29, 2005
-
-
Chris Lattner authored
that the X86 does not support to the legalizer. This allows it to be better optimized, etc, and will help with SSE support. llvm-svn: 22551
-
Chris Lattner authored
llvm-svn: 22550
-
Chris Lattner authored
long %test4(double %X) { %tmp.1 = cast double %X to long ; <long> [#uses=1] ret long %tmp.1 } to this: _test4: sub %ESP, 12 fld QWORD PTR [%ESP + 16] fistp QWORD PTR [%ESP] mov %EDX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%ESP] add %ESP, 12 ret instead of this: _test4: sub %ESP, 28 fld QWORD PTR [%ESP + 32] fstp QWORD PTR [%ESP] call ___fixdfdi add %ESP, 28 ret llvm-svn: 22549
-
- Jul 28, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22543
-
Andrew Lenharth authored
llvm-svn: 22538
-
Chris Lattner authored
have to write arguments to the stack llvm-svn: 22536
-
Chris Lattner authored
llvm-svn: 22535
-
Nate Begeman authored
For the following code: double %ext(int %A.0__, long %A.1__) { %A_addr = alloca %typedef.DComplex ; <%typedef.DComplex*> [#uses=2] %tmp.1 = cast %typedef.DComplex* %A_addr to int* ; <int*> [#uses=1] store int %A.0__, int* %tmp.1 %tmp.2 = getelementptr %typedef.DComplex* %A_addr, int 0, uint 1 ; <double*> [#uses=2] %tmp.3 = cast double* %tmp.2 to long* ; <long*> [#uses=1] store long %A.1__, long* %tmp.3 %tmp.5 = load double* %tmp.2 ; <double> [#uses=1] ret double %tmp.5 } We now generate: _ext: .LBB_ext_0: ; stw r3, -12(r1) stw r4, -8(r1) stw r5, -4(r1) lfd f1, -8(r1) blr Instead of: _ext: .LBB_ext_0: ; stw r3, -12(r1) addi r2, r1, -12 stw r4, 4(r2) stw r5, 8(r2) lfd f1, 4(r2) blr This also fires hundreds of times on MultiSource. llvm-svn: 22533
-
Nate Begeman authored
llvm-svn: 22530
-
- Jul 27, 2005
-
-
Jeff Cohen authored
llvm-svn: 22523
-
Nate Begeman authored
unnecessary SP manipulation in leaf routines that don't need it. llvm-svn: 22522
-
Chris Lattner authored
llvm-svn: 22521
-
Jeff Cohen authored
llvm-svn: 22520
-
- Jul 26, 2005
-
-
Chris Lattner authored
llvm-svn: 22518
-
Chris Lattner authored
llvm-svn: 22517
-
Nate Begeman authored
llvm-svn: 22516
-
- Jul 25, 2005
-
-
Nate Begeman authored
the need to build PIC. llvm-svn: 22512
-
- Jul 23, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22508
-
Chris Lattner authored
llvm-svn: 22507
-
Andrew Lenharth authored
Handle more imm forms, and load small negative i32 constants without hitting memory (should do the same for arbitrary zero extended small negative constants) llvm-svn: 22505
-
- Jul 22, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22502
-
Andrew Lenharth authored
llvm-svn: 22500
-
Andrew Lenharth authored
llvm-svn: 22499
-
Andrew Lenharth authored
llvm-svn: 22498
-
- Jul 21, 2005
-
-
Nate Begeman authored
Remove the LoadHiAddr pseudo-instruction. Optimization of stores to and loads from statics. Force JIT to use new non-PIC codepaths. llvm-svn: 22494
-