- Sep 29, 2006
-
-
Chris Lattner authored
llvm-svn: 30662
-
- Sep 28, 2006
-
-
Chris Lattner authored
CodeGen/PowerPC/2006-09-28-shift_64.ll llvm-svn: 30652
-
- Sep 27, 2006
-
-
Chris Lattner authored
llvm-svn: 30621
-
- Sep 26, 2006
-
-
Chris Lattner authored
int x __attribute__((used)); to: .data .comm _x,4 ; 'x' .no_dead_strip _x on both x86 and ppc darwin targets. llvm-svn: 30605
-
- Sep 22, 2006
-
-
Nate Begeman authored
llvm-svn: 30577
-
- Sep 20, 2006
-
-
Chris Lattner authored
should create the right asmprinter subclass. llvm-svn: 30542
-
Chris Lattner authored
llvm-svn: 30541
-
Chris Lattner authored
llvm-svn: 30518
-
Chris Lattner authored
llvm-svn: 30512
-
Chris Lattner authored
llvm-svn: 30510
-
Chris Lattner authored
1. Codegen this comparison: if (X == 0x8000) as: cmplwi cr0, r3, 32768 bne cr0, LBB1_2 ;cond_next instead of: lis r2, 0 ori r2, r2, 32768 cmpw cr0, r3, r2 bne cr0, LBB1_2 ;cond_next 2. Codegen this comparison: if (X == 0x12345678) as: xoris r2, r3, 4660 cmplwi cr0, r2, 22136 bne cr0, LBB1_2 ;cond_next instead of: lis r2, 4660 ori r2, r2, 22136 cmpw cr0, r3, r2 bne cr0, LBB1_2 ;cond_next llvm-svn: 30509
-
Chris Lattner authored
llvm-svn: 30508
-
Chris Lattner authored
Allow it to be clever when possible and fall back to the gross code when needed. This allows us to compile: long long foo1(long long X, int C) { return X << (C|32); } long long foo2(long long X, int C) { return X << (C&~32); } to: _foo1: rlwinm r2, r5, 0, 27, 31 slw r3, r4, r2 li r4, 0 blr .globl _foo2 .align 4 _foo2: rlwinm r2, r5, 0, 27, 25 subfic r5, r2, 32 slw r3, r3, r2 srw r5, r4, r5 or r3, r3, r5 slw r4, r4, r2 blr instead of: _foo1: ori r2, r5, 32 subfic r5, r2, 32 addi r6, r2, -32 srw r5, r4, r5 slw r3, r3, r2 slw r6, r4, r6 or r3, r3, r5 slw r4, r4, r2 or r3, r3, r6 blr .globl _foo2 .align 4 _foo2: rlwinm r2, r5, 0, 27, 25 subfic r5, r2, 32 addi r6, r2, -32 srw r5, r4, r5 slw r3, r3, r2 slw r6, r4, r6 or r3, r3, r5 slw r4, r4, r2 or r3, r3, r6 blr llvm-svn: 30507
-
- Sep 19, 2006
-
-
Chris Lattner authored
like: long long test(long long X, int Y) { return 1ULL << Y; } long long test2(long long X, int Y) { return -1LL << Y; } which we used to compile to: _test: li r2, 1 subfic r3, r5, 32 li r4, 0 addi r6, r5, -32 srw r3, r2, r3 slw r4, r4, r5 slw r6, r2, r6 or r3, r4, r3 slw r4, r2, r5 or r3, r3, r6 blr _test2: li r2, -1 subfic r3, r5, 32 addi r6, r5, -32 srw r3, r2, r3 slw r4, r2, r5 slw r2, r2, r6 or r3, r4, r3 or r3, r3, r2 blr Now we produce: _test: li r2, 1 addi r3, r5, -32 subfic r4, r5, 32 slw r3, r2, r3 srw r4, r2, r4 or r3, r4, r3 slw r4, r2, r5 blr _test2: li r2, -1 subfic r3, r5, 32 addi r6, r5, -32 srw r3, r2, r3 slw r4, r2, r5 slw r2, r2, r6 or r3, r4, r3 or r3, r3, r2 blr llvm-svn: 30479
-
- Sep 14, 2006
-
-
Chris Lattner authored
llvm-svn: 30377
-
- Sep 12, 2006
-
-
Evan Cheng authored
llvm-svn: 30279
-
- Sep 11, 2006
-
-
Nate Begeman authored
llvm-svn: 30240
-
- Sep 09, 2006
-
-
Nate Begeman authored
the file now, however the relocated address is currently wrong. Fixing that will require some deep pondering. llvm-svn: 30207
-
- Sep 08, 2006
-
-
Jim Laskey authored
llvm-svn: 30188
-
Nate Begeman authored
llvm-svn: 30173
-
Jim Laskey authored
2. Protect and outline createTargetAsmInfo. 3. Misc. kruft. llvm-svn: 30169
-
Jim Laskey authored
llvm-svn: 30162
-
Jim Laskey authored
llvm-svn: 30161
-
- Sep 06, 2006
-
-
Jim Laskey authored
llvm-svn: 30126
-
- Sep 05, 2006
-
-
Chris Lattner authored
def operand or a use operand. llvm-svn: 30109
-
- Sep 04, 2006
-
-
Chris Lattner authored
This pass: 1. Splits TargetMachine into TargetMachine (generic targets, can be implemented any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by things using libcodegen and other support). 2. Instead of having each target fully populate the passmgr for file or JIT output, move all this to common code, and give targets hooks they can implement. 3. Commonalize the target population stuff between file emission and JIT emission. 4. All (native code) codegen stuff now happens in a FunctionPassManager, which paves the way for "fast -O0" stuff in the CFE later, and now LLC could lazily stream .bc files from disk to use less memory. 5. There are now many fewer #includes and the targets don't depend on the scalar xforms or libanalysis anymore (but codegen does). 6. Changing common code generator pass ordering stuff no longer requires touching all targets. 7. The JIT now has the option of "-fast" codegen or normal optimized codegen, which is now orthogonal to the fact that JIT'ing is being done. llvm-svn: 30081
-
- Sep 03, 2006
-
-
Chris Lattner authored
llvm-svn: 30070
-
- Aug 29, 2006
-
-
Jim Laskey authored
handling.) llvm-svn: 29954
-
Nate Begeman authored
there are clearly some encoding bugs lurking in there somewhere. llvm-svn: 29949
-
- Aug 28, 2006
-
-
Reid Spencer authored
Close out this long standing bug by removing the remaining overloaded virtual functions in LLVM. The -Woverloaded-virtual option is now turned on. llvm-svn: 29934
-
- Aug 27, 2006
-
-
Chris Lattner authored
llvm-svn: 29911
-
Evan Cheng authored
SDOperand arguments. Use the variants which take an array and number instead. llvm-svn: 29907
-
- Aug 26, 2006
-
-
Evan Cheng authored
llvm-svn: 29901
-
Evan Cheng authored
llvm-svn: 29898
-
Evan Cheng authored
llvm-svn: 29895
-
Evan Cheng authored
llvm-svn: 29889
-
- Aug 25, 2006
-
-
Evan Cheng authored
asm printer will print it as offset*4. e.g. bne cr0, $+8. The PPC code emitter was expecting the offset to be number of instructions, not number of bytes. This fixes a whole bunch of JIT failures. llvm-svn: 29885
-
Jim Laskey authored
llvm-svn: 29880
-
- Aug 23, 2006
-
-
Nate Begeman authored
does emit linkable .o files in very simple cases. llvm-svn: 29850
-
- Aug 18, 2006
-
-
Chris Lattner authored
llvm-svn: 29756
-