- Nov 01, 2006
-
-
Evan Cheng authored
llvm-svn: 31359
-
Evan Cheng authored
llvm-svn: 31356
-
Chris Lattner authored
it inserts an uncond branch where it is less likely to cause a problem. This fixes some perf issues on ppc. llvm-svn: 31354
-
Evan Cheng authored
llvm-svn: 31347
-
Evan Cheng authored
llvm-svn: 31340
-
Chris Lattner authored
tail is not an entire block for either of them, pick one, split it, then merge the common part. llvm-svn: 31336
-
Chris Lattner authored
llvm-svn: 31335
-
Chris Lattner authored
_intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 blt cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr instead of: _intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bge cr0, LBB1_1 ;bb72.exitStub LBB1_4: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bnu cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr llvm-svn: 31330
-
- Oct 31, 2006
-
-
Chris Lattner authored
llvm-svn: 31328
-
Chris Lattner authored
llvm-svn: 31323
-
Chris Lattner authored
llvm-svn: 31319
-
Chris Lattner authored
llvm-svn: 31318
-
Anton Korobeynikov authored
2. Added partial debug support for mingw\cygwin targets (the same as Linux\ELF). Please note, that currently mingw\cygwin uses 'stabs' format for storing debug info by default, thus many (runtime) libraries has this information included. These formats shouldn't be mixed in one binary ('stabs' & 'DWARF'), otherwise binutils tools will be confused. llvm-svn: 31311
-
Chris Lattner authored
we don't support a specific constraint yet. When this happens, print the unsupported constraint. llvm-svn: 31310
-
Evan Cheng authored
llvm-svn: 31305
-
Reid Spencer authored
llvm-svn: 31302
-
- Oct 30, 2006
-
-
Reid Spencer authored
generated object modules to be debugged with gdb. Hopefully this helps pre-release debugging. llvm-svn: 31299
-
Jim Laskey authored
llvm-svn: 31296
-
Jim Laskey authored
llvm-svn: 31295
-
Evan Cheng authored
llvm-svn: 31293
-
Evan Cheng authored
llvm-svn: 31292
-
- Oct 29, 2006
-
-
Chris Lattner authored
successors), and make island block movement more general. This compiles CodeGen/X86/2006-04-27-ISelFoldingBug.ll to: _loadAndRLEsource_no_exit_2E_1_label_2E_0: subl $8, %esp movl %esi, 4(%esp) movl %ebx, (%esp) movl 16(%esp), %eax movl 12(%esp), %ecx LBB1_3: #label.0 movl _last, %edx movl %edx, %esi incl %esi movl %esi, _last movl %ecx, %ebx # TRUNCATE movb %bl, %bl movl _block, %esi movb %bl, 1(%esi,%edx) cmpl %eax, _last jge LBB1_2 #codeRepl5.exitStub LBB1_4: #label.0 cmpl $257, %ecx je LBB1_2 #codeRepl5.exitStub LBB1_1: #label.0.no_exit.1_crit_edge.exitStub movl $1, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret LBB1_2: #codeRepl5.exitStub xorl %eax, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret instead of: _loadAndRLEsource_no_exit_2E_1_label_2E_0: subl $8, %esp movl %esi, 4(%esp) movl %ebx, (%esp) movl 16(%esp), %eax movl 12(%esp), %ecx jmp LBB1_3 #label.0 LBB1_1: #label.0.no_exit.1_crit_edge.exitStub movl $1, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret LBB1_2: #codeRepl5.exitStub xorl %eax, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret LBB1_3: #label.0 movl _last, %edx movl %edx, %esi incl %esi movl %esi, _last movl %ecx, %ebx # TRUNCATE movb %bl, %bl movl _block, %esi movb %bl, 1(%esi,%edx) cmpl %eax, _last jge LBB1_2 #codeRepl5.exitStub LBB1_4: #label.0 cmpl $257, %ecx jne LBB1_1 #label.0.no_exit.1_crit_edge.exitStub jmp LBB1_2 #codeRepl5.exitStub ... which is much better layout :) llvm-svn: 31282
-
Chris Lattner authored
llvm-svn: 31281
-
Chris Lattner authored
used by comparisons in the main block. llvm-svn: 31279
-
Evan Cheng authored
llvm-svn: 31276
-
Nick Lewycky authored
llvm-svn: 31275
-
- Oct 28, 2006
-
-
Chris Lattner authored
edges whose destinations are not phi nodes don't bother us. Also, share split edges, since the split edge can't have a phi. This significantly reduces the complexity of generated code in some cases. llvm-svn: 31274
-
Chris Lattner authored
jump tables that are dead. llvm-svn: 31273
-
Chris Lattner authored
llvm-svn: 31269
-
Chris Lattner authored
llvm-svn: 31267
-
Chris Lattner authored
llvm-svn: 31266
-
Chris Lattner authored
the pred block doesn't fall through into them if it's a jumptable. llvm-svn: 31263
-
Jim Laskey authored
llvm-svn: 31261
-
Chris Lattner authored
being inserted on unsplit critical edges, which introduces (sometimes large amounts of) partially dead spill code. This also fixes PR925 + CodeGen/Generic/switch-crit-edge-constant.ll llvm-svn: 31260
-
Chris Lattner authored
llvm-svn: 31254
-
Jim Laskey authored
llvm-svn: 31243
-
Chris Lattner authored
Add many fewer CFG edges and PHI node entries. If there is a switch which has the same block as multiple destinations, only add that block once as a successor/phi node (in the jumptable case) llvm-svn: 31242
-
Jim Laskey authored
llvm-svn: 31240
-
- Oct 27, 2006
-
-
Chris Lattner authored
llvm-svn: 31233
-
Chris Lattner authored
cmpwi cr0, r4, 4 bgt cr0, LBB1_2 ;UnifiedReturnBlock LBB1_3: ;entry cmplwi cr0, r3, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock instead of: cmpwi cr7, r4, 4 mfcr r2 addic r4, r3, -1 subfe r3, r4, r3 rlwinm r2, r2, 30, 31, 31 or r2, r2, r3 cmplwi cr0, r2, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock LBB1_1: ;cond_true llvm-svn: 31232
-