Chris Lattner
135dcc024b
Revised version of a patch for PR222 that works with my version of gmake.
...
llvm-svn: 11104
2004-02-03 23:05:24 +00:00
Chris Lattner
3d96eb6fa6
Bug fixed
...
llvm-svn: 11103
2004-02-03 22:59:56 +00:00
Chris Lattner
6bd75a6223
Apply Michael Kahl's patch to fix the 'make tools-only' target when OBJDIR != SRCDIR.
...
See PR222.
llvm-svn: 11102
2004-02-03 22:56:40 +00:00
Chris Lattner
ae51cae111
Bunch up all locally used allocas by the block they are allocated in, and
...
process them all as a group. This speeds up SRoA/mem2reg from 28.46s to
0.62s on the testcase from PR209.
llvm-svn: 11100
2004-02-03 22:34:12 +00:00
Chris Lattner
3784188620
Handle extremely trivial cases extremely efficiently. This speeds up
...
SRoA/mem2reg from 41.2s to 27.5s on the testcase in PR209.
llvm-svn: 11099
2004-02-03 22:00:33 +00:00
Chris Lattner
d1b1992495
Generate ftst instructions for comparison against zero
...
llvm-svn: 11098
2004-02-03 18:54:04 +00:00
Chris Lattner
8a63001939
bug fixed
...
llvm-svn: 11097
2004-02-03 08:03:41 +00:00
Chris Lattner
3c8c72c54f
Add the ftst instruction
...
llvm-svn: 11095
2004-02-03 07:27:50 +00:00
Chris Lattner
8161306139
Add support for one argument OneArgFP instructions
...
llvm-svn: 11094
2004-02-03 07:27:34 +00:00
Alkis Evlogimenos
3d100ef0ca
When an instruction like: A += B had both A and B virtual registers
...
spilled, A was loaded from its stack location twice. This fixes the bug.
llvm-svn: 11093
2004-02-03 01:13:07 +00:00
Alkis Evlogimenos
74b26f77a3
Revert changes. Will implement this using a different set of primitives
...
llvm-svn: 11091
2004-02-02 23:08:58 +00:00
Alkis Evlogimenos
6e34205653
Fix debugging output.
...
llvm-svn: 11088
2004-02-02 22:00:32 +00:00
Alkis Evlogimenos
6471e66fbb
Correctly update def/use information for modified machine operands.
...
llvm-svn: 11087
2004-02-02 21:56:40 +00:00
Alkis Evlogimenos
5f03f684ed
Add MachineOperand::setDef() and MachineOperand::setUse() so that the
...
TwoAddressInstructionPass can correctly update use/def information.
llvm-svn: 11086
2004-02-02 21:55:18 +00:00
Alkis Evlogimenos
86ff30deab
Should be more careful. The previously applied change made all counts
...
outside of loops = 0.
llvm-svn: 11085
2004-02-02 20:29:57 +00:00
Chris Lattner
bcade4b8e6
Floating point negates are -0.0 - X, not 0.0 - X
...
llvm-svn: 11084
2004-02-02 20:21:29 +00:00
Chris Lattner
c2f0aa58df
Disable (x - (y - z)) => (x + (z - y)) optimization for floating point.
...
llvm-svn: 11083
2004-02-02 20:09:56 +00:00
Chris Lattner
cacd30b957
Update comment
...
llvm-svn: 11082
2004-02-02 20:09:22 +00:00
Chris Lattner
63b61e8739
No need to declare implicit uses/defs of ST0
...
llvm-svn: 11081
2004-02-02 19:57:45 +00:00
Chris Lattner
d932cbf613
Bug fixed
...
llvm-svn: 11080
2004-02-02 19:40:06 +00:00
Brian Gaeke
6204e75c4a
Make deadarghaX0r warning louder.
...
(I just love typing haX0r. haX0r haX0r haX0r.)
llvm-svn: 11079
2004-02-02 19:32:27 +00:00
Chris Lattner
30d26ac561
Generate the fchs instruction to negate a floating point number
...
llvm-svn: 11078
2004-02-02 19:31:38 +00:00
Chris Lattner
7af8ad6444
Add support for OneArgFPRW instructions, fix a couple of typeos
...
llvm-svn: 11077
2004-02-02 19:23:15 +00:00
Brian Gaeke
ac2ced8554
Include PowerPC.h. Flesh out the stub versions of addPassesToEmitAssembly()
...
and addPassesToJITCompile() slightly.
llvm-svn: 11076
2004-02-02 19:06:36 +00:00
Brian Gaeke
57b8ef2693
Add a -march=powerpc option. Automatically select it if this looks like a
...
big-endian, 32-bit module, or if __ppc__, __POWERPC__, or __APPLE__ are
defined.
llvm-svn: 11075
2004-02-02 19:06:12 +00:00
Brian Gaeke
53f4c48393
Link in the PowerPC back-end.
...
llvm-svn: 11074
2004-02-02 19:05:52 +00:00
Brian Gaeke
2458bd6507
Add comments describing how you would add prototypes for factory methods for
...
PowerPC-specific passes here.
llvm-svn: 11073
2004-02-02 19:05:28 +00:00
Brian Gaeke
fea8eb8938
Add prototype for llvm::allocatePowerPCTargetMachine().
...
llvm-svn: 11072
2004-02-02 19:05:08 +00:00
Chris Lattner
298fdd7eb1
Codegen -0.0 correctly. Do not use fldz! This is another -0.0 == +0.0 problem, arg.
...
llvm-svn: 11070
2004-02-02 18:56:30 +00:00
Chris Lattner
6fe75845f9
Correct the method I just added to actually return false sometimes
...
llvm-svn: 11069
2004-02-02 18:53:04 +00:00
Chris Lattner
29734bccc5
Add a new method to ConstantFP
...
llvm-svn: 11068
2004-02-02 18:40:29 +00:00
Chris Lattner
7bae4ce64f
Bug fixed
...
llvm-svn: 11067
2004-02-02 17:48:56 +00:00
Alkis Evlogimenos
2cecace9b2
Create an object for tracking physical register usage. This will look
...
much better when I get rid of the reserved registers.
llvm-svn: 11066
2004-02-02 07:30:36 +00:00
Chris Lattner
e2d6189513
Bug fixed
...
llvm-svn: 11065
2004-02-01 22:52:12 +00:00
Chris Lattner
ac80ea4970
Second half of a fix for PR218 & test/Regression/Assembler/2004-02-01-NegativeZero.llx.
...
Basically we store floating point values as their integral components, instead of relying
on the semantics of floating point < to differentiate between values. This is likely to
make the map search be faster anyway.
llvm-svn: 11064
2004-02-01 22:49:04 +00:00
Chris Lattner
5e2feb4a0f
The first half of a fix for PR218 & test/Regression/Assembler/2004-02-01-NegativeZero.llx
...
llvm-svn: 11063
2004-02-01 22:48:09 +00:00
Chris Lattner
e55e30917a
Add another test
...
llvm-svn: 11062
2004-02-01 22:47:16 +00:00
Alkis Evlogimenos
9b9c0485fd
Change weight array into a vector and make it as big as the number of
...
registers (not as the max number of registers).
Change toSpill from a std::set into a std::vector<bool>.
Use the reverse iterator adapter to do a reverse scan of allocatable
registers.
llvm-svn: 11061
2004-02-01 20:13:26 +00:00
Alkis Evlogimenos
5e05a59bf8
Use std::map::count() instead of std::map::find() != std::map::end()
...
where appropriate.
llvm-svn: 11060
2004-02-01 18:39:53 +00:00
Chris Lattner
e1146140fc
New testcase for PR218
...
llvm-svn: 11059
2004-02-01 18:16:06 +00:00
Alkis Evlogimenos
0df32f636e
Add MRegisterInfo::getNumRegs().
...
llvm-svn: 11058
2004-02-01 17:14:20 +00:00
Alkis Evlogimenos
a3a56fa041
Change string for joined intervals.
...
llvm-svn: 11057
2004-02-01 16:13:05 +00:00
Alkis Evlogimenos
aeb8a80c71
FpMOV is also a move instruction.
...
llvm-svn: 11055
2004-02-01 08:22:16 +00:00
Alkis Evlogimenos
84a84c38b7
Change xor to ^.
...
llvm-svn: 11054
2004-02-01 08:19:25 +00:00
Chris Lattner
eddfe437c7
Now that tailduplication does not bork SSA form, run mem2reg earlier in gccas.
...
This tremendously improves the code generated by the LLVM optimizer, primarily
by making the inliner more aggressive. For example, it improves the stepanov
benchmark from 55.56 mega-additions/sec to 98.04 Ma/s. It also improves the
oopack/iterator benchmark from 338.3MFLOPS/s to 1103.4MFLOPS/s. Less noteworthy,
it improves oopack/matrix from 573 -> 641 MFLOPS/s.
llvm-svn: 11053
2004-02-01 07:24:53 +00:00
Chris Lattner
ed9b12c31a
Disable tail duplication in any "hard" cases, where it might break SSA form.
...
llvm-svn: 11052
2004-02-01 06:32:28 +00:00
Chris Lattner
cae054f59f
Fix a bug in a recent checkin
...
llvm-svn: 11050
2004-02-01 05:25:07 +00:00
Chris Lattner
7c91a6176c
Fix the count of the number of instructions removed
...
llvm-svn: 11049
2004-02-01 05:15:07 +00:00
Alkis Evlogimenos
8d4f06ed84
Missed one silly assert :-)
...
llvm-svn: 11048
2004-02-01 02:21:31 +00:00
Alkis Evlogimenos
69deb4d236
Simplify joinIntervals() code.
...
llvm-svn: 11047
2004-02-01 02:18:31 +00:00