- Dec 11, 2004
-
-
Brian Gaeke authored
llvm-svn: 18803
-
Brian Gaeke authored
ctor parameters can be defaulted. Print the transformed llvm code input to the instruction selector when -print-machineinstrs is on, just like V9. llvm-svn: 18794
-
Brian Gaeke authored
*or g0, x add g0, x recognized * as a move) or x, g0 add x, g0 or 0, x add 0, x or x, 0 add x, 0 llvm-svn: 18793
-
Brian Gaeke authored
* Don't emit the Index * ElementSize multiply if Index is a constant. * Use a shift, not a multiply, if ElementSize is 1/2/4/8. * If ElementSize fits in the immediate field of SMUL, then put it there. Fix a bug where struct offsets might be truncated (ConstantSInt::get is now used instead of ConstantInt::get). llvm-svn: 18792
-
Brian Gaeke authored
ones are failing in cbe. llvm-svn: 18791
-
- Dec 10, 2004
-
-
Brian Gaeke authored
slipping through into the instruction selector, which can't deal with them yet. llvm-svn: 18758
-
Brian Gaeke authored
llvm-svn: 18757
-
Brian Gaeke authored
llvm-svn: 18756
-
Brian Gaeke authored
matter with my sparcv8 libstdc++.a) and to-do list. llvm-svn: 18755
-
Brian Gaeke authored
llvm-svn: 18745
-
Brian Gaeke authored
llvm-svn: 18738
-
Brian Gaeke authored
llvm-svn: 18737
-
Brian Gaeke authored
llvm-svn: 18736
-
Brian Gaeke authored
think some of these might be the CFE's fault; a rebuild should come soon. llvm-svn: 18735
-
Brian Gaeke authored
each pair. I think this fixes that. One of these days, I swear I'm going to get the hang of C++ iterators. Really. llvm-svn: 18734
-
- Dec 09, 2004
-
-
Brian Gaeke authored
llvm-svn: 18714
-
Brian Gaeke authored
llvm-svn: 18713
-
Brian Gaeke authored
everything was an int!) llvm-svn: 18712
-
- Dec 05, 2004
-
-
Chris Lattner authored
intrinsic lowering ever introduces constants. Rename local symbols before printing function bodies, fixing 255.vortex with the CBE!!! llvm-svn: 18534
-
- Dec 03, 2004
-
-
Chris Lattner authored
PR472 llvm-svn: 18459
-
Brian Gaeke authored
to rewrite this to use relocations. llvm-svn: 18453
-
Tanya Lattner authored
When writing kernel, save the branches til the end. They are still put in the "right place" in the schedule, but sometimes when folding to make a kernel instructions are added between branches. This is wrong. To avoid this, we handle branches special. llvm-svn: 18450
-
Chris Lattner authored
llvm-svn: 18449
-
- Dec 02, 2004
-
-
Chris Lattner authored
llvm-svn: 18436
-
John Criswell authored
Including alloca.h on Solaris brings in the prototype of strftime(), which breaks compilation of CBE generated code. llvm-svn: 18435
-
Chris Lattner authored
instead of 80-bits of precision. This fixes PR467. This change speeds up fldry on X86 with LLC from 7.32s on apoc to 4.68s. llvm-svn: 18433
-
Chris Lattner authored
llvm-svn: 18432
-
Tanya Lattner authored
llvm-svn: 18419
-
- Dec 01, 2004
-
-
Tanya Lattner authored
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20041122/021428.html It broke Mutlisource/Applications/obsequi llvm-svn: 18407
-
Chris Lattner authored
llvm-svn: 18406
-
- Nov 30, 2004
-
-
Chris Lattner authored
llvm-svn: 18398
-
Brian Gaeke authored
llvm-svn: 18397
-
Brian Gaeke authored
llvm-svn: 18384
-
Brian Gaeke authored
%f0 = fmovs %f0 %f1 = fmovs %f1 then just delete the FpMOVD pseudo-instruction instead. Also, add statistics and debug printouts. llvm-svn: 18383
-
Chris Lattner authored
addi r3, r3, -1 instead of addi r3, r3, 1 for 'sub int X, 1'. Secondarily, this fixes several cases where we could crash given an unsigned constant. And fixes a couple of minor missed optimization cases, such as xor X, ~0U -> not X llvm-svn: 18379
-
Chris Lattner authored
llvm-svn: 18376
-
Chris Lattner authored
llvm-svn: 18374
-
Chris Lattner authored
llvm-svn: 18371
-
Chris Lattner authored
Remove extraneous namespacification. In particular, don't define llvm::llvm::createInternalGlobalMapperPass llvm-svn: 18365
-
- Nov 29, 2004
-
-
Chris Lattner authored
to Brian and the Sun compiler for pointing out that the obvious works :) This also enables folding all long comparisons into setcc and branch instructions: before we could only do == and != For example, for: void test(unsigned long long A, unsigned long long B) { if (A < B) foo(); } We now generate: test: subl $4, %esp movl %esi, (%esp) movl 8(%esp), %eax movl 12(%esp), %ecx movl 16(%esp), %edx movl 20(%esp), %esi subl %edx, %eax sbbl %esi, %ecx jae .LBBtest_2 # UnifiedReturnBlock .LBBtest_1: # then call foo movl (%esp), %esi addl $4, %esp ret .LBBtest_2: # UnifiedReturnBlock movl (%esp), %esi addl $4, %esp ret Instead of: test: subl $12, %esp movl %esi, 8(%esp) movl %ebx, 4(%esp) movl 16(%esp), %eax movl 20(%esp), %ecx movl 24(%esp), %edx movl 28(%esp), %esi cmpl %edx, %eax setb %al cmpl %esi, %ecx setb %bl cmove %ax, %bx testb %bl, %bl je .LBBtest_2 # UnifiedReturnBlock .LBBtest_1: # then call foo movl 4(%esp), %ebx movl 8(%esp), %esi addl $12, %esp ret .LBBtest_2: # UnifiedReturnBlock movl 4(%esp), %ebx movl 8(%esp), %esi addl $12, %esp ret llvm-svn: 18330
-