Chris Lattner [Wed, 1 Nov 2006 07:15:44 +0000 (07:15 +0000)]
remove a testcase for a marginal feature
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31345
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Nov 2006 07:13:54 +0000 (07:13 +0000)]
Turn a phi of many loads into a phi of the address and a single load of the
result. This can significantly shrink code and exposes identities more
aggressively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31344
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Nov 2006 06:53:52 +0000 (06:53 +0000)]
Fix ldmxcsr JIT encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31343
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Nov 2006 04:55:47 +0000 (04:55 +0000)]
Fix a bug in the previous patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31342
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Nov 2006 04:51:18 +0000 (04:51 +0000)]
Fold things like "phi [add (a,b), add(c,d)]" into two phi's and one add.
This triggers thousands of times on multisource.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31341
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Nov 2006 04:48:30 +0000 (04:48 +0000)]
Print jumptable index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31340
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 1 Nov 2006 03:45:43 +0000 (03:45 +0000)]
Remove unnecessary sign conversions made possible by last patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31339
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 1 Nov 2006 03:41:05 +0000 (03:41 +0000)]
Fix a bug in the interpreter where divides of unmatched signed operands
would fail. E.g. udiv sint X, Y or sdiv uint X, Y would fail to find a
type match in the switch statement and fail the operation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31338
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Nov 2006 01:16:12 +0000 (01:16 +0000)]
make tail merging more aggressive. If two blocks share a common tail, but the
tail is not an entire block for either of them, pick one, split it, then
merge the common part.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31336
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Nov 2006 00:38:31 +0000 (00:38 +0000)]
enable branch folding with an option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31335
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Nov 2006 00:27:59 +0000 (00:27 +0000)]
Not meant to be checked in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31334
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Nov 2006 00:27:05 +0000 (00:27 +0000)]
Add operand constraints to TargetInstrInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31333
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Nov 2006 00:26:27 +0000 (00:26 +0000)]
Add constraints to Instruction class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31332
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 31 Oct 2006 23:46:56 +0000 (23:46 +0000)]
more shotenning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31331
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 23:06:00 +0000 (23:06 +0000)]
Compile CodeGen/PowerPC/fp-branch.ll to:
_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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31330
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 23:05:16 +0000 (23:05 +0000)]
This test should compile down to one comparison, not two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31329
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 22:37:42 +0000 (22:37 +0000)]
look through isunordered to inline it into branch blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31328
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 31 Oct 2006 21:53:31 +0000 (21:53 +0000)]
Nuke dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31327
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 20:13:11 +0000 (20:13 +0000)]
allow the address of a global to be used with the "i" constraint when in
-static mode. This implements PR882.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31326
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 20:12:30 +0000 (20:12 +0000)]
implement the 'c' inline asm modifier character
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31325
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 20:11:14 +0000 (20:11 +0000)]
new testcase for PR882
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31324
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 20:01:56 +0000 (20:01 +0000)]
handle global address constant sdnodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31323
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 31 Oct 2006 19:52:12 +0000 (19:52 +0000)]
Let us play simplify the td file (and fix a few missed sub and mul patterns).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31322
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 31 Oct 2006 19:50:55 +0000 (19:50 +0000)]
make one giant add and sub tester
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31321
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 19:42:44 +0000 (19:42 +0000)]
handle "st" as "st(0)"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31320
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 19:41:18 +0000 (19:41 +0000)]
TargetLowering::isOperandValidForConstraint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31319
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 19:40:43 +0000 (19:40 +0000)]
Change the prototype for TargetLowering::isOperandValidForConstraint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31318
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 18:56:48 +0000 (18:56 +0000)]
generalize the fix for PR977 to also fix
Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 18:56:24 +0000 (18:56 +0000)]
another testcase for PR977
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31316
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 17:52:18 +0000 (17:52 +0000)]
Fix PR977 and Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31315
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 17:51:36 +0000 (17:51 +0000)]
testcase for PR977
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31314
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 31 Oct 2006 16:49:55 +0000 (16:49 +0000)]
Add all that branch mangling niftiness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31313
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 31 Oct 2006 13:03:26 +0000 (13:03 +0000)]
add support for calling functions when the caller has variable sized objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31312
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 31 Oct 2006 08:31:24 +0000 (08:31 +0000)]
1. Clean up code due to changes in SwitchTo*Section(2)
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31311
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 07:33:13 +0000 (07:33 +0000)]
Turn an assert into an error message. This is commonly triggered when
we don't support a specific constraint yet. When this happens, print the
unsupported constraint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 06:26:10 +0000 (06:26 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 06:25:13 +0000 (06:25 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Oct 2006 06:15:14 +0000 (06:15 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31307
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 31 Oct 2006 06:11:06 +0000 (06:11 +0000)]
Unbreaking static ctors patch.
Defaulting second arguments of SwitchTo*Section, this should make things
somehow clearer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31306
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 31 Oct 2006 02:31:00 +0000 (02:31 +0000)]
Fix a typo which can break jumptables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31305
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 31 Oct 2006 01:45:56 +0000 (01:45 +0000)]
Make this compile again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31304
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 31 Oct 2006 01:26:55 +0000 (01:26 +0000)]
Apply Aton's LLVM patch for PR973: Linux ctors / dtors support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31303
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 30 Oct 2006 23:34:32 +0000 (23:34 +0000)]
Fix a problem introduced by a last-minute change (logic negation).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31302
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Oct 2006 23:02:25 +0000 (23:02 +0000)]
fix miscompilation of llvm.isunordered, where we branched on the opposite
condition. This fixes miscompilation of Olden/bh and many others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31301
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 30 Oct 2006 22:46:49 +0000 (22:46 +0000)]
Don't mislead readers by claiming a variable is defaulted to false when
the default is actually true.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31300
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 30 Oct 2006 22:32:30 +0000 (22:32 +0000)]
Add debug support for X86/ELF targets (Linux). This allows llvm-gcc4
generated object modules to be debugged with gdb. Hopefully this helps
pre-release debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31299
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Oct 2006 22:27:23 +0000 (22:27 +0000)]
fix wonky indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31298
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 30 Oct 2006 19:25:54 +0000 (19:25 +0000)]
Update comment. Valid option is -debug-pass=Structures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31297
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 30 Oct 2006 15:59:54 +0000 (15:59 +0000)]
Switch abbreviations to use the folding set.a.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31296
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 30 Oct 2006 13:35:07 +0000 (13:35 +0000)]
Simplify DwarfWriter header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31295
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 30 Oct 2006 08:02:39 +0000 (08:02 +0000)]
All targets expand BR_JT for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31294
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 30 Oct 2006 08:00:44 +0000 (08:00 +0000)]
Lower jumptable to BR_JT. The legalizer can lower it to a BRIND or let the target custom lower it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31293
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 30 Oct 2006 07:59:36 +0000 (07:59 +0000)]
Added a new SDNode type: BR_JT for jumptable branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31292
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Oct 2006 05:24:03 +0000 (05:24 +0000)]
fix this regtest
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31291
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Oct 2006 05:07:51 +0000 (05:07 +0000)]
add a new form of insert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31290
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Oct 2006 03:39:20 +0000 (03:39 +0000)]
Add SmallString a (currently) minimal class that adapts SmallVector to be
more string-like.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31289
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Oct 2006 03:14:15 +0000 (03:14 +0000)]
add a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31288
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 23:47:01 +0000 (23:47 +0000)]
add newline at end of file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31287
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 23:42:03 +0000 (23:42 +0000)]
add a highly efficient hash table that is specialized for mapping C strings
to some other type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31286
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 22:08:03 +0000 (22:08 +0000)]
Add a new llvm::Allocator abstraction, which will be used by a container
I'm about to add. This is similar to, but necessarily different than, the
STL allocator class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31285
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 21:21:20 +0000 (21:21 +0000)]
Fix SimplifyCFG/2006-10-29-InvokeCrash.ll, a crash compiling QT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31284
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 21:20:56 +0000 (21:20 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31283
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 21:05:41 +0000 (21:05 +0000)]
Make CanFallThrough more intelligent (so it can handle blocks with (e.g.) no
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 :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31282
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 21:01:20 +0000 (21:01 +0000)]
fix Generic/2006-10-29-Crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31281
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 21:00:55 +0000 (21:00 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31280
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Oct 2006 18:23:37 +0000 (18:23 +0000)]
Fix a load folding issue that Evan noticed: there is no need to export values
used by comparisons in the main block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31279
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sun, 29 Oct 2006 09:19:59 +0000 (09:19 +0000)]
Try again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31278
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sun, 29 Oct 2006 08:27:07 +0000 (08:27 +0000)]
Not handling zero length strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31277
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 29 Oct 2006 06:14:47 +0000 (06:14 +0000)]
VLOAD is not the LoadSDNode opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31276
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 29 Oct 2006 02:26:30 +0000 (02:26 +0000)]
Remove spurious case. EXTLOAD is not one of the node opcodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31275
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 19:22:10 +0000 (19:22 +0000)]
split critical edges more carefully and intelligently. In particular, critical
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31274
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:34:47 +0000 (18:34 +0000)]
Teach branch folding to fold identical jump tables together and to delete
jump tables that are dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31273
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:21:51 +0000 (18:21 +0000)]
add an assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31272
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:21:29 +0000 (18:21 +0000)]
remove dead method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31271
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:18:36 +0000 (18:18 +0000)]
add a method for hacking on JTIdx's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31270
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:17:09 +0000 (18:17 +0000)]
const'ify jump table stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31269
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:12:00 +0000 (18:12 +0000)]
add a method for deleting dead jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31268
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:11:20 +0000 (18:11 +0000)]
add an assert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31267
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:10:06 +0000 (18:10 +0000)]
don't print dead jump tables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 18:00:05 +0000 (18:00 +0000)]
determine whether a change was made
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 17:35:02 +0000 (17:35 +0000)]
implement the BlockHasNoFallThrough hook
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 17:32:47 +0000 (17:32 +0000)]
improve deletion of blocks that just contain branches by knowing that
the pred block doesn't fall through into them if it's a jumptable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31263
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 17:29:57 +0000 (17:29 +0000)]
add another target hook for branch folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31262
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 28 Oct 2006 17:25:28 +0000 (17:25 +0000)]
Load and stores have not been uniqued properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31261
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 17:04:37 +0000 (17:04 +0000)]
Split *all* critical edges before isel. This resolves issues with spill code
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31260
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 17:04:16 +0000 (17:04 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31259
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 06:58:17 +0000 (06:58 +0000)]
add option to isCriticalEdge
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31258
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 06:45:33 +0000 (06:45 +0000)]
break edges more intelligently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31257
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 06:44:56 +0000 (06:44 +0000)]
Expose a smarter way to break critical edges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31256
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 06:38:14 +0000 (06:38 +0000)]
SplitCriticalEdge checks to see if an edge is critical, don't check twice
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31255
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 06:15:26 +0000 (06:15 +0000)]
Fix a serious bug that caused any x86 vector stuff to infinite loop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31254
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 28 Oct 2006 05:56:51 +0000 (05:56 +0000)]
Doh. Must check if GV is constant first before putting it in .cstring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31253
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 28 Oct 2006 05:56:06 +0000 (05:56 +0000)]
Doh. Must check if GV is constant first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31252
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 28 Oct 2006 02:34:41 +0000 (02:34 +0000)]
Emitting raw bytecode is awfully rude. Add -disable-output.
Clarify the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31251
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 28 Oct 2006 01:34:21 +0000 (01:34 +0000)]
Editorial clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 01:24:05 +0000 (01:24 +0000)]
add a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 00:59:20 +0000 (00:59 +0000)]
prepare for a change I'm about to make
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31248
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 00:51:15 +0000 (00:51 +0000)]
don't dist internal readme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31247
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 00:49:54 +0000 (00:49 +0000)]
don't dist internal readme's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31246
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Oct 2006 00:48:27 +0000 (00:48 +0000)]
don't distribute internal readme's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31245
91177308-0d34-0410-b5e6-
96231b3b80d8