Evan Cheng
b1ac9f6c12
Added getTiedToSrcOperand() to check for two-address'ness.
...
llvm-svn: 31360
2006-11-01 23:00:31 +00:00
Evan Cheng
1f18eca4f5
Clean up.
...
llvm-svn: 31359
2006-11-01 22:39:30 +00:00
Devang Patel
3f3161cee2
Handle PHINode with only one incoming value.
...
This fixes http://llvm.org/bugs/show_bug.cgi?id=979
llvm-svn: 31358
2006-11-01 22:26:43 +00:00
Devang Patel
d80e7deee2
Testcase from http://llvm.org/bugs/show_bug.cgi?id=979
...
llvm-svn: 31357
2006-11-01 22:25:48 +00:00
Evan Cheng
5479bb9fc4
CopyFromReg starts a live range so its use should not be considered a floater.
...
llvm-svn: 31356
2006-11-01 22:17:06 +00:00
Reid Spencer
198701d5ec
Make ScalarEvolution actually use a ZeroExtend expression instead of
...
having SCZeroExtendExpr be equivalent to SCTruncate
llvm-svn: 31355
2006-11-01 21:53:12 +00:00
Chris Lattner
f20968bc33
give branch folding a simple heuristic to decide which block to split so that
...
it inserts an uncond branch where it is less likely to cause a problem. This
fixes some perf issues on ppc.
llvm-svn: 31354
2006-11-01 19:36:29 +00:00
Chris Lattner
7def2775bd
extra pass is required now
...
llvm-svn: 31353
2006-11-01 18:30:25 +00:00
Chris Lattner
953b8e6f7d
Fix GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll and McGill/chomp
...
llvm-svn: 31352
2006-11-01 18:03:33 +00:00
Chris Lattner
a15b1d2d3a
new testcase that crashes global opt, reduced from chomp
...
llvm-svn: 31351
2006-11-01 18:02:53 +00:00
Reid Spencer
bbb6c7b698
Partial update for Release 1.9
...
llvm-svn: 31350
2006-11-01 16:15:04 +00:00
Rafael Espindola
3ae2b33d17
print null values in bss
...
llvm-svn: 31349
2006-11-01 14:26:44 +00:00
Rafael Espindola
a52f709418
implement zextload bool and truncstore bool
...
llvm-svn: 31348
2006-11-01 14:13:27 +00:00
Evan Cheng
83b0827a2e
Add a printSetLabel that takes two id's.
...
llvm-svn: 31347
2006-11-01 09:23:08 +00:00
Chris Lattner
2cedfa5156
Factor gep instructions through phi nodes.
...
llvm-svn: 31346
2006-11-01 07:43:41 +00:00
Chris Lattner
01a3d12bda
remove a testcase for a marginal feature
...
llvm-svn: 31345
2006-11-01 07:15:44 +00:00
Chris Lattner
61ea2af8fe
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.
llvm-svn: 31344
2006-11-01 07:13:54 +00:00
Evan Cheng
790d5c7697
Fix ldmxcsr JIT encoding.
...
llvm-svn: 31343
2006-11-01 06:53:52 +00:00
Chris Lattner
e43c3b1681
Fix a bug in the previous patch
...
llvm-svn: 31342
2006-11-01 04:55:47 +00:00
Chris Lattner
7211110992
Fold things like "phi [add (a,b), add(c,d)]" into two phi's and one add.
...
This triggers thousands of times on multisource.
llvm-svn: 31341
2006-11-01 04:51:18 +00:00
Evan Cheng
67c04b1f2a
Print jumptable index.
...
llvm-svn: 31340
2006-11-01 04:48:30 +00:00
Reid Spencer
a47902dc6f
Remove unnecessary sign conversions made possible by last patch.
...
llvm-svn: 31339
2006-11-01 03:45:43 +00:00
Reid Spencer
ea7b487e03
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.
llvm-svn: 31338
2006-11-01 03:41:05 +00:00
Chris Lattner
b459c08384
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.
llvm-svn: 31336
2006-11-01 01:16:12 +00:00
Chris Lattner
5651528580
enable branch folding with an option
...
llvm-svn: 31335
2006-11-01 00:38:31 +00:00
Evan Cheng
a585562f95
Not meant to be checked in.
...
llvm-svn: 31334
2006-11-01 00:27:59 +00:00
Evan Cheng
c566892bd5
Add operand constraints to TargetInstrInfo.
...
llvm-svn: 31333
2006-11-01 00:27:05 +00:00
Evan Cheng
f49cb35d90
Add constraints to Instruction class.
...
llvm-svn: 31332
2006-11-01 00:26:27 +00:00
Andrew Lenharth
92b6c807c7
more shotenning
...
llvm-svn: 31331
2006-10-31 23:46:56 +00:00
Chris Lattner
850ef9955d
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
llvm-svn: 31330
2006-10-31 23:06:00 +00:00
Chris Lattner
1f47e3da50
This test should compile down to one comparison, not two.
...
llvm-svn: 31329
2006-10-31 23:05:16 +00:00
Chris Lattner
3131b7d6d1
look through isunordered to inline it into branch blocks.
...
llvm-svn: 31328
2006-10-31 22:37:42 +00:00
Evan Cheng
cabfd99a79
Nuke dead code.
...
llvm-svn: 31327
2006-10-31 21:53:31 +00:00
Chris Lattner
def30d3eda
allow the address of a global to be used with the "i" constraint when in
...
-static mode. This implements PR882.
llvm-svn: 31326
2006-10-31 20:13:11 +00:00
Chris Lattner
0571c323bf
implement the 'c' inline asm modifier character
...
llvm-svn: 31325
2006-10-31 20:12:30 +00:00
Chris Lattner
f02f038d84
new testcase for PR882
...
llvm-svn: 31324
2006-10-31 20:11:14 +00:00
Chris Lattner
3bc1ad2c4a
handle global address constant sdnodes
...
llvm-svn: 31323
2006-10-31 20:01:56 +00:00
Andrew Lenharth
cc672e3b2b
Let us play simplify the td file (and fix a few missed sub and mul patterns).
...
llvm-svn: 31322
2006-10-31 19:52:12 +00:00
Andrew Lenharth
4ffd67f8cf
make one giant add and sub tester
...
llvm-svn: 31321
2006-10-31 19:50:55 +00:00
Chris Lattner
3bed109ed9
handle "st" as "st(0)"
...
llvm-svn: 31320
2006-10-31 19:42:44 +00:00
Chris Lattner
a44a27dc47
TargetLowering::isOperandValidForConstraint
...
llvm-svn: 31319
2006-10-31 19:41:18 +00:00
Chris Lattner
d9afd310a6
Change the prototype for TargetLowering::isOperandValidForConstraint
...
llvm-svn: 31318
2006-10-31 19:40:43 +00:00
Chris Lattner
3b7a9fa472
generalize the fix for PR977 to also fix
...
Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
llvm-svn: 31317
2006-10-31 18:56:48 +00:00
Chris Lattner
04f01db216
another testcase for PR977
...
llvm-svn: 31316
2006-10-31 18:56:24 +00:00
Chris Lattner
79daf6ae80
Fix PR977 and Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
...
llvm-svn: 31315
2006-10-31 17:52:18 +00:00
Chris Lattner
0e320bc90e
testcase for PR977
...
llvm-svn: 31314
2006-10-31 17:51:36 +00:00
Andrew Lenharth
c4f8836525
Add all that branch mangling niftiness
...
llvm-svn: 31313
2006-10-31 16:49:55 +00:00
Rafael Espindola
ba8771a3db
add support for calling functions when the caller has variable sized objects
...
llvm-svn: 31312
2006-10-31 13:03:26 +00:00
Anton Korobeynikov
e6ba8a819c
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.
llvm-svn: 31311
2006-10-31 08:31:24 +00:00
Chris Lattner
a9f10b25cc
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.
llvm-svn: 31310
2006-10-31 07:33:13 +00:00