Chris Lattner
b7a6a33ca9
Bug fixed
...
llvm-svn: 14273
2004-06-20 19:08:50 +00:00
Chris Lattner
6bfca8f5f1
Fix a bug in my change last night that caused a few test failures.
...
llvm-svn: 14270
2004-06-20 17:01:44 +00:00
Chris Lattner
5004e09ad2
IntrinsicLowering.cpp now lives in lib/CodeGen/
...
llvm-svn: 14269
2004-06-20 07:59:27 +00:00
Chris Lattner
58559b370a
Update path
...
llvm-svn: 14268
2004-06-20 07:53:22 +00:00
Chris Lattner
243561d74b
Header moved into the CodeGen directory
...
llvm-svn: 14267
2004-06-20 07:50:32 +00:00
Chris Lattner
bcdadf3765
Move the IntrinsicLowering header into the CodeGen directory, as per PR346
...
llvm-svn: 14266
2004-06-20 07:49:54 +00:00
Chris Lattner
4c96b0883f
Move the IntrinsicLowering header into the CodeGen directory
...
llvm-svn: 14265
2004-06-20 07:46:18 +00:00
Chris Lattner
5f142cfc4d
Start moving IntrinsicLowering out of VMCore into libcodegen, as per PR346
...
llvm-svn: 14264
2004-06-20 07:40:46 +00:00
Chris Lattner
eb3e84078d
Do not sort SCEV objects by address: instead sort by complexity and group
...
by address. This prevents the resultant SCEV objects from depending on
where in memory other scev objects happen to live.
llvm-svn: 14263
2004-06-20 06:23:15 +00:00
Chris Lattner
c9e06336ab
Make use of BinaryOperator::create* methods to shrinkify code.
...
llvm-svn: 14262
2004-06-20 05:04:01 +00:00
Chris Lattner
e6115e471c
Add methods like BinaryOperator::createAdd that take an instruction to insert
...
before.
llvm-svn: 14261
2004-06-20 05:02:56 +00:00
Chris Lattner
7d30a6c145
Fix the inliner to be deterministic, not letting its output depend on the
...
relative location of Function objects in memory.
llvm-svn: 14260
2004-06-20 04:11:48 +00:00
Chris Lattner
d537eb1264
Make fpcmp handle running off of the beginning or end of the file correctly.
...
llvm-svn: 14259
2004-06-20 03:12:18 +00:00
Chris Lattner
9734fd0980
Add some DEBUG output to the simplifycfg routines
...
Fix another non-deterministic behavior, this one should actually speed up the
code though as it was doing silly things.
llvm-svn: 14258
2004-06-20 01:13:18 +00:00
Reid Spencer
0277fd7b44
A utility to search the LLVM source tree for a grep pattern. This is a
...
replacement for getsrcs.sh which now generates too much text to put on a
Linux command line. The approach taken with llvmgrep is to execute a find
command and execute a grep on each file that matches the name pattern. The
arguments to this script are the same as those of egrep. Note that the -H
and -n options to egrep will always be passed so that you always get the
file and line number of matches.
llvm-svn: 14255
2004-06-19 20:32:55 +00:00
Chris Lattner
42ad646104
Now that dominator tree children are built in determinstic order, this horrible code
...
can go away
llvm-svn: 14254
2004-06-19 20:23:35 +00:00
Chris Lattner
39396e2df9
compute dominator tree children in a deterministic order that does not depend
...
on the address of BasicBlock objects in memory. This eliminates stuff like this:
Inorder Dominator Tree:
[1] %entry
[2] %loopentry
- [3] %loopexit
[3] %no_exit
- [4] %endif
[4] %then
+ [4] %endif
+ [3] %loopexit
[3] %return
llvm-svn: 14253
2004-06-19 20:13:48 +00:00
Chris Lattner
89f803bb32
Print out immediate dominators in program order, not in random order based on the address
...
of BasicBlock objects
llvm-svn: 14252
2004-06-19 20:04:47 +00:00
Chris Lattner
940b7ba5ad
This will hopefully fix a heisenbug that Vladimir Merzliakov is running
...
into valiantly trying to compile stuff on freebsd.
llvm-svn: 14251
2004-06-19 19:01:26 +00:00
Reid Spencer
006b386e6f
Add a note about GCC 3.3.2 optimization bug that causes llc to spin.
...
llvm-svn: 14250
2004-06-19 18:24:05 +00:00
Chris Lattner
4027500e1c
Fix a nasty bug, noticed by Reid
...
llvm-svn: 14249
2004-06-19 18:15:50 +00:00
Chris Lattner
ec2d34cc19
Fix one source of nondeterminism in the -licm pass: the hoist pass
...
was processing blocks in whatever order they happened to end up in the
dominator tree data structure. Force an ordering.
llvm-svn: 14248
2004-06-19 08:56:43 +00:00
Chris Lattner
4db0f8260a
Change to use the StableBasicBlockNumbering class
...
llvm-svn: 14247
2004-06-19 08:42:40 +00:00
Chris Lattner
d31410d824
Initial checkin of the StableBasicBlockNumbering, a little helper class for computing
...
(strangely enough) a stable (determinstic) numbering for basic blocks.
llvm-svn: 14246
2004-06-19 08:41:59 +00:00
Chris Lattner
feda9d0583
Fix a tiny bug in the -no-aa pass, in which it did not ever get a target data.
...
This is a regression from 1.2, though noone uses -no-aa anyway
llvm-svn: 14245
2004-06-19 08:05:58 +00:00
Chris Lattner
a52ab6f57f
Do not let the numbering of PHI nodes placed in the function depend on
...
non-deterministic things like the ordering of blocks in the dominance
frontier of a BB. Unfortunately, I don't know of a better way to solve
this problem than to explicitly sort the BB's in function-order before
processing them. This is guaranteed to slow the pass down a bit, but
is absolutely necessary to get usable diffs between two different tools
executing the mem2reg or scalarrepl pass.
Before this, bazillions of spurious diff failures occurred all over the
place due to the different order of processing PHIs:
- %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.0, uint 0, uint 0
+ %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.1, uint 0, uint 0
Now, the diffs match.
llvm-svn: 14244
2004-06-19 07:40:14 +00:00
Chris Lattner
b2b151d297
Do not sort by the address of LLVM ConstantInt* objects. This produces
...
nondeterministic results that depend on where these objects land in memory.
Instead, sort by the value of the constant, which is stable.
Before this patch, the -simplifycfg pass run from two different compilers
could cause different code to be generated, though it was semantically the
same:
@@ -12258,8 +12258,8 @@
%s_addr.1 = phi sbyte* [ %s, %entry ], [ %inc.0, %no_exit ] ; <sbyte*> [#uses=5]
%tmp.1 = load sbyte* %s_addr.1 ; <sbyte> [#uses=1]
switch sbyte %tmp.1, label %no_exit [
- sbyte 0, label %loopexit
sbyte 46, label %loopexit
+ sbyte 0, label %loopexit
]
We need to stomp all of this stuff out.
llvm-svn: 14243
2004-06-19 07:02:14 +00:00
Chris Lattner
b5f8eb8315
Do not loop over uses as we delete them. This causes iterators to be
...
invalidated out from under us. This bug goes back to revision 1.1: scary.
llvm-svn: 14242
2004-06-19 02:02:22 +00:00
Chris Lattner
2ef024b2c2
Bug fixed
...
llvm-svn: 14241
2004-06-19 01:11:02 +00:00
Chris Lattner
649154cace
Test for PR374
...
llvm-svn: 14240
2004-06-19 01:08:12 +00:00
Misha Brukman
0bca699edd
Fix relative link to the CVS mirrors.
...
llvm-svn: 14239
2004-06-18 20:18:31 +00:00
Chris Lattner
8c470182bb
Add link to the CVS mirror hosted by Reid
...
llvm-svn: 14238
2004-06-18 20:15:58 +00:00
Misha Brukman
5f056c78c1
Add link documenting shared/static library differences across platforms.
...
llvm-svn: 14237
2004-06-18 18:39:00 +00:00
Chris Lattner
3daf984f71
Bug fixed
...
llvm-svn: 14236
2004-06-18 17:57:29 +00:00
Misha Brukman
35d842e75f
Capitalize Cygwin.
...
llvm-svn: 14235
2004-06-18 15:54:54 +00:00
Misha Brukman
4b58581545
* Fix file header and name
...
* Order #includes alphabetically
llvm-svn: 14234
2004-06-18 15:38:49 +00:00
Misha Brukman
42a24823a1
Use the machine-independent method of querying the page size.
...
llvm-svn: 14233
2004-06-18 15:34:07 +00:00
Misha Brukman
5d87550ba7
Add a target-independent way to query page size.
...
llvm-svn: 14232
2004-06-18 15:30:25 +00:00
Brian Gaeke
5b433a5de9
.zero doesn't work in the Solaris assembler.
...
llvm-svn: 14231
2004-06-18 08:59:16 +00:00
Brian Gaeke
4125c92009
Get rid of selects the easy way
...
llvm-svn: 14230
2004-06-18 08:46:15 +00:00
Brian Gaeke
694f7b78d9
Make visitAllocaInst() look more like its X86 counterpart.
...
llvm-svn: 14229
2004-06-18 08:45:52 +00:00
Brian Gaeke
fcc30aca1b
Mess around with allocation order. In particular, I think we ought to be
...
using the local & in regs first because they are not clobbered by calls.
llvm-svn: 14228
2004-06-18 08:19:08 +00:00
Brian Gaeke
b42345811e
JMPL has a delay slot.
...
llvm-svn: 14227
2004-06-18 08:18:54 +00:00
Brian Gaeke
7d9af983de
Clean up the commented-out F3_3 stuff.
...
Replace it with a working class for FP instrs.
llvm-svn: 14226
2004-06-18 06:28:21 +00:00
Brian Gaeke
75f3738969
Fix jmpl.
...
Add some FP moves.
llvm-svn: 14225
2004-06-18 06:28:10 +00:00
Brian Gaeke
12ee9a1e75
Support printing base+offset pairs where the offset is a register.
...
Use this for printing the jmpl indirect-call instruction.
llvm-svn: 14224
2004-06-18 06:27:59 +00:00
Brian Gaeke
5ebab28a8a
Support intrinsic calls (although no particular intrinsics are supported yet).
...
Support indirect calls.
Support returning a float value.
llvm-svn: 14223
2004-06-18 06:27:48 +00:00
Chris Lattner
b7c4bac617
Calls to __builtin_isunordered and friends no longer cause llvmgcc to ICE.
...
llvm-svn: 14222
2004-06-18 06:26:29 +00:00
Chris Lattner
023a483c76
Implement Transforms/InstCombine/and.ll:test17, a common case that
...
occurs due to unordered comparison macros in math.h
llvm-svn: 14221
2004-06-18 06:07:51 +00:00
Chris Lattner
d5829aac27
New test
...
llvm-svn: 14220
2004-06-18 06:07:17 +00:00