Chris Lattner
7432ceef5c
Add a flag to enable a darwin linker optimization
...
llvm-svn: 24130
2005-11-01 00:12:36 +00:00
Chris Lattner
6b63e0c6fd
Make constant pool entries use private labels. This is important when you're
...
not compiling a whole program at a time :)
llvm-svn: 24129
2005-10-31 22:12:06 +00:00
Andrew Lenharth
d44a8f546d
Updated alpha known problems.
...
llvm-svn: 24126
2005-10-31 19:07:29 +00:00
Chris Lattner
b7147f6027
Apparently these do pass on some alphas
...
llvm-svn: 24125
2005-10-31 19:06:13 +00:00
Chris Lattner
71d73eb411
Fix an iterator invalidation problem in code used by the -strip pass
...
llvm-svn: 24124
2005-10-31 18:42:37 +00:00
Chris Lattner
09efd4e5b6
Limit the search depth of MaskedValueIsZero to 6 instructions, to avoid
...
bad cases. This fixes Markus's second testcase in PR639, and should
seal it for good.
llvm-svn: 24123
2005-10-31 18:35:52 +00:00
Jim Laskey
0433df136f
Emit itinerary class in instruction info.
...
llvm-svn: 24122
2005-10-31 17:16:46 +00:00
Jim Laskey
3763a50d82
Generate cpu to itinerary map.
...
llvm-svn: 24121
2005-10-31 17:16:01 +00:00
Chris Lattner
14ada0fd4e
these tests fail on alpha for some reason
...
llvm-svn: 24120
2005-10-31 16:15:49 +00:00
Jim Laskey
5ce0538253
1. Embed and not inherit vector for NodeGroup.
...
2. Iterate operands and not uses (performance.)
3. Some long pending comment changes.
llvm-svn: 24119
2005-10-31 12:49:09 +00:00
Duraid Madina
88fc69f627
add FP compares and implicit register defs to the dag isel
...
llvm-svn: 24118
2005-10-31 01:42:11 +00:00
Jeff Cohen
94d1562071
Update Getting Started for Visual Studio page.
...
llvm-svn: 24117
2005-10-30 21:00:24 +00:00
Chris Lattner
6871b23d02
Significantly simplify this code and make it more aggressive. Instead of having
...
a special case hack for X86, make the hack more general: if an incoming argument
register is not used in any block other than the entry block, don't copy it to
a vreg. This helps us compile code like this:
%struct.foo = type { int, int, [0 x ubyte] }
int %test(%struct.foo* %X) {
%tmp1 = getelementptr %struct.foo* %X, int 0, uint 2, int 100
%tmp = load ubyte* %tmp1 ; <ubyte> [#uses=1]
%tmp2 = cast ubyte %tmp to int ; <int> [#uses=1]
ret int %tmp2
}
to:
_test:
lbz r3, 108(r3)
blr
instead of:
_test:
lbz r2, 108(r3)
or r3, r2, r2
blr
The (dead) copy emitted to copy r3 into a vreg for extra-block uses was
increasing the live range of r3 past the load, preventing the coallescing.
This implements CodeGen/PowerPC/reg-coallesce-simple.ll
llvm-svn: 24115
2005-10-30 19:42:35 +00:00
Chris Lattner
6beef90324
new testcase
...
llvm-svn: 24112
2005-10-30 19:42:18 +00:00
Chris Lattner
dd5663dfa0
Reduce the number of copies emitted as machine instructions by
...
generating results in vregs that will need them. In the case of something
like this: CopyToReg((add X, Y), reg1024), we no longer emit code like
this:
reg1025 = add X, Y
reg1024 = reg 1025
Instead, we emit:
reg1024 = add X, Y
Whoa! :)
llvm-svn: 24111
2005-10-30 18:54:27 +00:00
Chris Lattner
5c7d731832
If the module has no t-t and the host is an alpha, default to using the Alpha BE
...
llvm-svn: 24110
2005-10-30 16:44:01 +00:00
Duraid Madina
57b7ee9da8
fix some broken comparisons, this affected the Pattern isel too.
...
llvm-svn: 24109
2005-10-30 10:14:19 +00:00
Chris Lattner
48131a8254
The pass was removed, but the spirit lives on
...
llvm-svn: 24108
2005-10-30 07:22:15 +00:00
Chris Lattner
e507a15184
This is implemented
...
llvm-svn: 24107
2005-10-30 06:42:12 +00:00
Chris Lattner
a70878d4fb
Codegen mul by negative power of two with a shift and negate.
...
This implements test/Regression/CodeGen/PowerPC/mul-neg-power-2.ll,
producing:
_foo:
slwi r2, r3, 1
subfic r3, r2, 63
blr
instead of:
_foo:
mulli r2, r3, -2
addi r3, r2, 63
blr
llvm-svn: 24106
2005-10-30 06:41:49 +00:00
Chris Lattner
9cc9f0fca1
new testcase
...
llvm-svn: 24103
2005-10-30 06:37:33 +00:00
Chris Lattner
f0b77f9acc
Fix a problem that Nate noticed with LSR:
...
When inserting code for an addrec expression with a non-unit stride, be
more careful where we insert the multiply. In particular, insert the multiply
in the outermost loop we can, instead of the requested insertion point.
This allows LSR to notice the mul in the right loop, reducing it when it gets
to it. This allows it to reduce the multiply, where before it missed it.
This happens quite a bit in the test suite, for example, eliminating 2
multiplies in art, 3 in ammp, 4 in apsi, reducing from 1050 multiplies to
910 muls in galgel (!), from 877 to 859 in applu, and 36 to 30 in bzip2.
This speeds up galgel from 16.45s to 16.01s, applu from 14.21 to 13.94s and
fourinarow from 66.67s to 63.48s.
This implements Transforms/LoopStrengthReduce/nested-reduce.ll
llvm-svn: 24102
2005-10-30 06:24:33 +00:00
Chris Lattner
67315dc888
new testcase
...
llvm-svn: 24099
2005-10-30 05:14:02 +00:00
Chris Lattner
af6b34ff44
Revert an accidental commit.
...
llvm-svn: 24098
2005-10-29 17:01:41 +00:00
Jeff Cohen
99a71ef891
More files deleted.
...
llvm-svn: 24097
2005-10-29 16:51:48 +00:00
Chris Lattner
85b184b292
Make -time-passes output prettier
...
llvm-svn: 24096
2005-10-29 16:45:02 +00:00
Chris Lattner
d91df9d941
Make negative immediates in patterns work correctly, silence some warnings
...
building the itanium backend.
llvm-svn: 24095
2005-10-29 16:39:40 +00:00
Duraid Madina
7abaf906e2
add some FP stuff, some mix.* stuff, and constant pool support to the
...
DAG instruction selector, which should be destroyed one day (in the pattern
isel also) since ia64 can pack any constant in the instruction stream
llvm-svn: 24094
2005-10-29 16:08:30 +00:00
Chris Lattner
42f905691e
Fix <> in html
...
llvm-svn: 24093
2005-10-29 07:08:19 +00:00
Chris Lattner
a69595ee0d
First hack-and-slash on the release notes. Comments and improvements welcome
...
llvm-svn: 24092
2005-10-29 07:07:09 +00:00
Chris Lattner
d66c42facb
Remove the lowerconstantexprs pass
...
llvm-svn: 24091
2005-10-29 05:34:40 +00:00
Chris Lattner
27d351f159
This pass is now obsolete since all targets have moved to the SelectionDAG
...
infrastructure and the simple isels have been removed.
llvm-svn: 24090
2005-10-29 05:33:46 +00:00
Chris Lattner
de63fba075
Remove the LowerConstantExpressionsPass pass
...
llvm-svn: 24089
2005-10-29 05:32:20 +00:00
Chris Lattner
dcceae104e
remove reference to this pass
...
llvm-svn: 24088
2005-10-29 05:28:34 +00:00
Chris Lattner
8ad30360cf
Basic updates
...
llvm-svn: 24087
2005-10-29 05:14:01 +00:00
Chris Lattner
c86bd2b1cd
Buh bye Expression.(cpp|h)
...
llvm-svn: 24086
2005-10-29 04:55:57 +00:00
Chris Lattner
21193ac3c0
remove a dead file
...
llvm-svn: 24085
2005-10-29 04:43:38 +00:00
Chris Lattner
29b04e1021
remove a dead header
...
llvm-svn: 24084
2005-10-29 04:43:10 +00:00
Chris Lattner
752717d4ec
Remove dead #include
...
llvm-svn: 24083
2005-10-29 04:41:30 +00:00
Chris Lattner
ceb9d5adaa
Now that instcombine does this xform, remove it from the -raise pass
...
llvm-svn: 24082
2005-10-29 04:40:23 +00:00
Chris Lattner
8f663e8bbc
Pull some code out into a function, give it the ability to see through +.
...
This allows us to turn code like malloc(4*x+4) -> malloc int, (x+1)
llvm-svn: 24081
2005-10-29 04:36:15 +00:00
Duraid Madina
c252f33fdb
add shladd
...
llvm-svn: 24080
2005-10-29 04:13:40 +00:00
Duraid Madina
e71426f581
test for the formation of shladd
...
llvm-svn: 24077
2005-10-29 04:06:49 +00:00
Chris Lattner
8270c33606
Remove a special case, allowing the general case to handle it. No functionality
...
change.
llvm-svn: 24076
2005-10-29 03:19:53 +00:00
Nate Begeman
00cea9b2e0
New case to handle someday
...
llvm-svn: 24075
2005-10-28 23:26:57 +00:00
Chris Lattner
742606ad30
Switch more code over to using getValueAsListOfDefs. Look at all the -'s. :)
...
llvm-svn: 24074
2005-10-28 22:59:53 +00:00
Chris Lattner
7ca53a5783
Don't emit "32" for unordered comparison
...
llvm-svn: 24073
2005-10-28 22:58:07 +00:00
Chris Lattner
7ad0bed89f
Rename Record::getValueAsListDef to getValueAsListOfDefs, to more accurately
...
reflect what it is.
Convert some more code over to use it.
llvm-svn: 24072
2005-10-28 22:49:02 +00:00
Chris Lattner
802bd8d94f
Use the new interface Jim added
...
llvm-svn: 24071
2005-10-28 22:43:25 +00:00
Jim Laskey
dffe5978a3
Removed Mr. Smith from the code.
...
llvm-svn: 24070
2005-10-28 21:47:29 +00:00