Chris Lattner
a82712d3bf
Testcase (distilled from crafty) that crashed the local RA on X86.
...
llvm-svn: 30063
2006-09-03 07:14:47 +00:00
Chris Lattner
2a9da0da7b
When deleting a machine instruction, make sure to remove it from the
...
livevariables information. This fixes several regalloc=local failures on x86
llvm-svn: 30062
2006-09-03 00:06:08 +00:00
Chris Lattner
cc5b4bff8f
Move two methods out of line, make them work when the record for a machine
...
instruction includes physregs.
llvm-svn: 30061
2006-09-03 00:05:09 +00:00
Chris Lattner
9c13e636d4
Count the time for a pass to ReleaseMemory against that pass. Not doing this
...
was under accounting for the time that livevariables cost
llvm-svn: 30060
2006-09-02 23:09:24 +00:00
Owen Anderson
4bbb544645
Make this testcase actually recursive. I accidentally committed the wrong copy last time.
...
llvm-svn: 30059
2006-09-02 22:46:58 +00:00
Chris Lattner
518f055373
Fix a typo pointed out by Gabor
...
llvm-svn: 30058
2006-09-02 22:27:29 +00:00
Owen Anderson
0ea394ab0a
Make ArgumentPromotion handle recursive functions that pass pointers in their recursive calls.
...
llvm-svn: 30057
2006-09-02 21:19:44 +00:00
Rafael Espindola
5c0443c41e
add more condition codes
...
llvm-svn: 30056
2006-09-02 20:24:25 +00:00
Nick Lewycky
26f5df3031
Improve handling of SelectInst.
...
Reorder operations to remove duplicated work.
Fix to leave floating-point types out of the optimization.
Add tests to predsimplify.ll for SwitchInst and SelectInst handling.
llvm-svn: 30055
2006-09-02 19:40:38 +00:00
Chris Lattner
d4cc3dbac4
improve compat with certain versions of GCC (on cygwin?)
...
llvm-svn: 30054
2006-09-02 17:37:30 +00:00
Chris Lattner
c01fbffc67
add a prototype
...
llvm-svn: 30051
2006-09-02 05:37:53 +00:00
Chris Lattner
dfda549a00
Iteration is required for some cases, even if they don't occur in crafty.
...
Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll
llvm-svn: 30050
2006-09-02 05:32:53 +00:00
Chris Lattner
382e699e59
When joining two intervals where the RHS is really simple, use a light-weight
...
method for joining the live ranges instead of the fully-general one.
llvm-svn: 30049
2006-09-02 05:26:59 +00:00
Chris Lattner
9ad19f6f8b
new method
...
llvm-svn: 30048
2006-09-02 05:26:01 +00:00
Evan Cheng
cdf49f8b10
Another "cyclic DAG" test case.
...
llvm-svn: 30043
2006-09-01 23:50:17 +00:00
Evan Cheng
69ef4ae2a1
Oops. Bad typo. Without the check of N1.hasOneUse() bad things can happen.
...
Suppose the TokenFactor can reach the Op:
[Load chain]
^
|
[Load]
^ ^
| |
/ \-
/ |
/ [Op]
/ ^ ^
| .. |
| / |
[TokenFactor] |
^ |
| |
\ /
\ /
[Store]
If we move the Load below the TokenFactor, we would have created a cycle in
the DAG.
llvm-svn: 30040
2006-09-01 22:52:28 +00:00
Chris Lattner
fa87f12b85
Use a couple of multiclass patterns to factor some integer ops.
...
llvm-svn: 30039
2006-09-01 22:28:02 +00:00
Chris Lattner
04b7417f40
remove a bunch of comments
...
llvm-svn: 30038
2006-09-01 22:16:22 +00:00
Chris Lattner
997e7e3d45
Make sure to clear CurDefmPrefix = 0, otherwise stuff after a defm won't
...
parse right. This fixes TableGen/MultiClass.td
llvm-svn: 30037
2006-09-01 22:07:27 +00:00
Chris Lattner
dc8b45e90e
Make this harder
...
llvm-svn: 30036
2006-09-01 22:07:00 +00:00
Chris Lattner
128ad4e442
Fix a typo Jim pointed out, thanks!
...
llvm-svn: 30035
2006-09-01 22:01:36 +00:00
Chris Lattner
4c597bb380
fix an assertion with multidefs. Def inside of multiclasses don't need to
...
be complete.
llvm-svn: 30034
2006-09-01 21:59:03 +00:00
Bill Wendling
3233cae4be
Fixed formatting problem.
...
llvm-svn: 30033
2006-09-01 21:47:10 +00:00
Chris Lattner
a7a9ca8910
document !strconcat
...
llvm-svn: 30032
2006-09-01 21:46:01 +00:00
Bill Wendling
23ab3ad3eb
Added documentation Fernando Magno Quintao Pereira wrote for the register
...
allocator. (First draft)
llvm-svn: 30031
2006-09-01 21:46:00 +00:00
Chris Lattner
0ef41a8fdc
Document multiclasses and defm's
...
llvm-svn: 30030
2006-09-01 21:44:18 +00:00
Chris Lattner
67e2187a04
regenerate
...
llvm-svn: 30029
2006-09-01 21:14:42 +00:00
Chris Lattner
1e5cf5e60f
simple multiclass example
...
llvm-svn: 30028
2006-09-01 21:14:37 +00:00
Chris Lattner
948354e18e
Add often-requested support for defining "multiclasses" which can be instantiated.
...
This allows you to define multiple definitions with one line, encouraging
more .td file factoring.
llvm-svn: 30027
2006-09-01 21:13:49 +00:00
Anton Korobeynikov
1c7d8613c4
- Fixed broken Win32 build
...
- Removed warning about clobbered parameter in Bytecode/Reader
llvm-svn: 30026
2006-09-01 20:35:17 +00:00
Evan Cheng
4bb35b7730
Remove extra spaces.
...
llvm-svn: 30025
2006-09-01 18:45:22 +00:00
Evan Cheng
86888bd45a
Last check-in was a mistake...
...
I've been told apple gcc version number is not guaranteed to increase
monotonically. Change the preprocess condition to make it less risky.
The configuration change is done during the middle 10.4 life cycle so we have
to check __APPLE_CC. For future OS X release, we should be able to assume
-fenable-cxa-atexit is the default.
llvm-svn: 30024
2006-09-01 18:42:59 +00:00
Evan Cheng
22679fcdd8
*** empty log message ***
...
llvm-svn: 30023
2006-09-01 18:40:46 +00:00
Evan Cheng
464ef8dc53
Allow legalizer to expand ISD::MUL using only MULHS in the rare case that is
...
possible and the target only supports MULHS.
llvm-svn: 30022
2006-09-01 18:17:58 +00:00
Jim Laskey
2f8c98b9b1
Corrections.
...
llvm-svn: 30021
2006-09-01 12:55:05 +00:00
Evan Cheng
017334de42
Better comments.
...
llvm-svn: 30017
2006-09-01 07:09:56 +00:00
Evan Cheng
0c6e5c95dc
Yikes. This requires checking apple gcc version.
...
llvm-svn: 30016
2006-09-01 07:00:46 +00:00
Chris Lattner
fc38415ddc
Pull some code out of a hot recursive function because the common case doesn't
...
need recursion.
llvm-svn: 30015
2006-09-01 07:00:23 +00:00
Chris Lattner
89a7eadf22
remove some particularly expensive assertions
...
llvm-svn: 30014
2006-09-01 06:57:35 +00:00
Chris Lattner
2aef97494c
Reserve space in the ValueNumberInfo vector. This speeds up live interval
...
analysis 16% on crafty.
Wrap long lines.
llvm-svn: 30012
2006-09-01 06:10:18 +00:00
Chris Lattner
7453a7d197
add a simple reserve method.
...
llvm-svn: 30011
2006-09-01 06:08:16 +00:00
Chris Lattner
0c120af606
Iterative coallescing doesn't buy us anything (we get identical results on
...
crafty with and without it). Removing it speeds up live intervals 6%.
llvm-svn: 30010
2006-09-01 04:02:42 +00:00
Nick Lewycky
ebb3b930fd
Don't confuse canonicalize and lookup. Fixes predsimplify.reg4.ll. Also
...
corrects missing optimization opportunity removing cases from a switch.
llvm-svn: 30009
2006-09-01 03:26:35 +00:00
Evan Cheng
b2933f3f52
DAG combiner fix for rotates. Previously the outer-most condition checks
...
for ROTL availability. This prevents it from forming ROTR for targets that
has ROTR only.
llvm-svn: 29997
2006-08-31 07:41:12 +00:00
Chris Lattner
fbb467f738
Add a special case that speeds up coallescing a bit, but not enough.
...
llvm-svn: 29996
2006-08-31 06:48:26 +00:00
Chris Lattner
1020604f2c
Delete copies as they are coallesced instead of waiting until the end.
...
llvm-svn: 29995
2006-08-31 05:58:59 +00:00
Chris Lattner
998dd9b42e
avoid calling the virtual isMoveInstr method endlessly by caching its results.
...
llvm-svn: 29994
2006-08-31 05:54:43 +00:00
Chris Lattner
f0e85f8600
Add a note about C++ -> C with libstdc++
...
llvm-svn: 29993
2006-08-31 04:26:31 +00:00
Nick Lewycky
56d79475b7
This program crashes the PredicateSimplifier. Not marked XFAIL because
...
the PredicateSimplifier is skipped in make check anyways.
llvm-svn: 29992
2006-08-31 03:13:05 +00:00
Nick Lewycky
e31a5a1b20
Properties where both Values weren't in the union (as being equal to
...
another Value) weren't being found by findProperties.
This fixes predsimplify.ll test6, a missed optimization opportunity.
llvm-svn: 29991
2006-08-31 00:39:16 +00:00