Chris Lattner
60dfdded64
Remove dead return value.
...
llvm-svn: 28245
2006-05-12 17:28:36 +00:00
Chris Lattner
db5b91f6a8
Compile:
...
%tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1]
%tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1]
%bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1]
To setne, not setune, which causes an assertion fault.
llvm-svn: 28244
2006-05-12 17:03:46 +00:00
Chris Lattner
bcd2c4f32d
Fix PowerPC/2006-05-12-rlwimi-crash.ll
...
Nate, please verify that if InsertMask is 0, rlwimi shouldn't be used.
This fixes the crash and causes no PPC testsuite regressions.
llvm-svn: 28243
2006-05-12 16:29:37 +00:00
Chris Lattner
436447489d
new testcase for a recent rlwimi crash.
...
llvm-svn: 28242
2006-05-12 16:28:13 +00:00
Evan Cheng
409dd126bf
Noop instruction
...
llvm-svn: 28241
2006-05-12 07:47:00 +00:00
Evan Cheng
3d1e1ffd9b
Unused instruction
...
llvm-svn: 28240
2006-05-12 07:42:01 +00:00
Owen Anderson
1245bd420e
Add a method to generate a string representation from a TargetData.
...
This continues the work on PR 761.
llvm-svn: 28239
2006-05-12 07:01:44 +00:00
Owen Anderson
29e4d70aed
Refactor a bunch of includes so that TargetMachine.h doesn't have to include
...
TargetData.h. This should make recompiles a bit faster with my current
TargetData tinkering.
llvm-svn: 28238
2006-05-12 06:33:49 +00:00
Owen Anderson
a0a9e4584a
Fix some tabbing issues.
...
llvm-svn: 28237
2006-05-12 06:06:55 +00:00
Evan Cheng
f3d7bb7a9e
Backing out fix for PR770. Need to re-apply it after live range splitting is possible
...
llvm-svn: 28236
2006-05-12 06:06:34 +00:00
Evan Cheng
c24d0f281c
Duh. That could take a long time.
...
llvm-svn: 28235
2006-05-12 06:05:18 +00:00
Owen Anderson
30ffff31f2
Add a new constructor to TargetData that builds a TargetData from its
...
string representation.
This is part of PR 761.
llvm-svn: 28234
2006-05-12 05:49:47 +00:00
Chris Lattner
a500852895
Two simplifications for token factor nodes: simplify tf(x,x) -> x.
...
simplify tf(x,y,y,z) -> tf(x,y,z).
llvm-svn: 28233
2006-05-12 05:01:37 +00:00
Evan Cheng
787496ebcd
New scheduling test case.
...
llvm-svn: 28232
2006-05-12 01:59:17 +00:00
Evan Cheng
0b8e4bca80
Add capability to scheduler to commute nodes for profit.
...
If a two-address code whose first operand has uses below, it should be commuted
when possible.
llvm-svn: 28230
2006-05-12 01:58:24 +00:00
Evan Cheng
eb67c0f664
Typo! How did we commute nodes before?!
...
llvm-svn: 28229
2006-05-12 01:46:26 +00:00
Chris Lattner
14cdcc59b8
For extra sanity checking, fill free'd memory with garbage so we know that
...
people aren't reusing machine code buffers at all.
llvm-svn: 28228
2006-05-12 00:03:12 +00:00
Chris Lattner
ecc6d6f334
Fix some bugs in the freelist manipulation code.
...
Finally, implement ExecutionEngine::freeMachineCodeForFunction.
llvm-svn: 28227
2006-05-11 23:56:57 +00:00
Evan Cheng
cb2a0f392c
Refactor scheduler code. Move register-reduction list scheduler to a
...
separate file. Added an initial implementation of top-down register pressure
reduction list scheduler.
llvm-svn: 28226
2006-05-11 23:55:42 +00:00
Chris Lattner
81a3c90080
Significantly revamp allocation of machine code to use free lists, real
...
allocation policies and much more. All this complexity, and we have no
functionality change, woo! :)
llvm-svn: 28225
2006-05-11 23:08:08 +00:00
Chris Lattner
3fad520c62
Refactor some code, making it simpler.
...
When doing the initial pass of constant folding, if we get a constantexpr,
simplify the constant expr like we would do if the constant is folded in the
normal loop.
This fixes the missed-optimization regression in
Transforms/InstCombine/getelementptr.ll last night.
llvm-svn: 28224
2006-05-11 17:11:52 +00:00
Evan Cheng
6a08dd641a
Add MOV16_rm / MOV32_rm and MOV16_mr / MOV32_mr to isLoadFromStackSlot and isStoreToStackSlot
...
llvm-svn: 28223
2006-05-11 07:33:49 +00:00
Evan Cheng
e2cebf972d
Also add super- register class info.
...
llvm-svn: 28222
2006-05-11 07:31:44 +00:00
Evan Cheng
d6549daf76
Also add super- register classes info.
...
llvm-svn: 28221
2006-05-11 07:30:26 +00:00
Evan Cheng
7028ff2e25
Set weight of zero length intervals to infinite to prevent them from being
...
spilled.
llvm-svn: 28220
2006-05-11 07:29:24 +00:00
Evan Cheng
da04c3aab4
Backing out previous check-in.
...
llvm-svn: 28219
2006-05-11 07:28:16 +00:00
Owen Anderson
0fbf479d8e
Fix some problems linking stuff in libTarget.
...
llvm-svn: 28218
2006-05-11 03:10:15 +00:00
Evan Cheng
03fa9eb65e
If the live interval legnth is essentially zero, i.e. in every live range
...
the use follows def immediately, it doesn't make sense to spill it and
hope it will be easier to allocate for this LI.
llvm-svn: 28217
2006-05-10 22:30:41 +00:00
Evan Cheng
12417fb32c
Update test case
...
llvm-svn: 28216
2006-05-10 19:53:05 +00:00
Chris Lattner
e8fe3f2a08
Two changes:
...
1. Implement InstCombine/deadcode.ll by not adding instructions in unreachable
blocks (due to constants in conditional branches/switches) to the worklist.
This causes them to be deleted before instcombine starts up, leading to
better optimization.
2. In the prepass over instructions, do trivial constprop/dce as we go. This
has the effect of improving the effectiveness of #1 . In addition, it
*significantly* speeds up instcombine on test cases with large amounts of
constant folding code (for example, that produced by code specialization
or partial evaluation). In one example, it speeds up instcombine from
0.0589s to 0.0224s with a release build (a 2.6x speedup).
llvm-svn: 28215
2006-05-10 19:00:36 +00:00
Chris Lattner
f99a429a12
New testcase, check that dead code doesn't pessimize instcombine
...
llvm-svn: 28214
2006-05-10 18:56:04 +00:00
Chris Lattner
085cfba0ca
Fix the PowerPC JIT-only failure on UnitTests/Vector/sumarray-dbl, which is
...
really a bad codegen bug that LLC happens to get lucky with. I must chat with
Nate for the proper fix.
llvm-svn: 28213
2006-05-10 06:38:32 +00:00
Evan Cheng
9f269c1bef
Templatify RegReductionPriorityQueue
...
llvm-svn: 28212
2006-05-10 06:16:44 +00:00
Chris Lattner
39290ea978
Add alloca/malloc ctors that don't take array sizes.
...
llvm-svn: 28211
2006-05-10 04:38:35 +00:00
Chris Lattner
32ddb45079
Add an assertion for a common error
...
llvm-svn: 28210
2006-05-10 04:32:43 +00:00
Evan Cheng
2af8a9f980
Watch out for the following case:
...
1. Use expects a chain output.
2. Node is expanded into multiple target ops.
3. One of the inner node produces a chain, the outer most one doesn't.
llvm-svn: 28209
2006-05-10 02:47:57 +00:00
Evan Cheng
0655b538d6
Fix a load folding bug. It is exposed by a multi- resulting instructions
...
def : Pat<> pattern.
llvm-svn: 28208
2006-05-10 00:05:46 +00:00
Nate Begeman
3af196c9b2
Fix PR773
...
llvm-svn: 28207
2006-05-09 18:20:51 +00:00
Chris Lattner
adef4bbf27
This method doesn't need to be virtual, thanks to Reid for pointing this out.
...
llvm-svn: 28206
2006-05-09 17:29:17 +00:00
Chris Lattner
486e0660b7
Fix a regression in my patch from last night that broke the llvmgcc4 build on
...
ppc
llvm-svn: 28205
2006-05-09 16:41:59 +00:00
Chris Lattner
56680711dc
Indent .data/.text in the .s file
...
llvm-svn: 28204
2006-05-09 16:15:00 +00:00
Evan Cheng
0f8516a3e0
Another instruction scheduling test case
...
llvm-svn: 28203
2006-05-09 07:20:24 +00:00
Evan Cheng
1a8feb189e
Add pseudo dependency to force a def&use operand to be scheduled last (unless
...
the distance between the def and another use is much longer). This is under
option control for now "-sched-lower-defnuse".
llvm-svn: 28201
2006-05-09 07:13:34 +00:00
Evan Cheng
3f72d2121b
Debugging info
...
llvm-svn: 28200
2006-05-09 06:55:15 +00:00
Evan Cheng
1f5c530d04
Remove a completed entry.
...
llvm-svn: 28199
2006-05-09 06:54:05 +00:00
Evan Cheng
02e8d5f2d6
Test case for PR770
...
llvm-svn: 28198
2006-05-09 06:48:12 +00:00
Evan Cheng
aad3fe008e
PR 770 - permit coallescing of registers in subset register classes.
...
llvm-svn: 28197
2006-05-09 06:37:48 +00:00
Evan Cheng
e989b1534a
Added sub- register classes information.
...
llvm-svn: 28196
2006-05-09 06:35:30 +00:00
Evan Cheng
87b66b9aec
Add sub-register class information.
...
llvm-svn: 28195
2006-05-09 06:34:26 +00:00
Chris Lattner
b7152b0b42
Implement MASM sections correctly, without a "has masm sections flag" and a bunch of special case code.
...
llvm-svn: 28194
2006-05-09 05:33:48 +00:00