Duraid Madina
d0b87b3ede
OK, IA64 is statically linked into llc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20655 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 18:37:05 +00:00
Duraid Madina
de487f0977
build the IA64 target as a .so for now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20654 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 18:29:04 +00:00
Duraid Madina
9b9d45f60e
and so it begins...
...
PHASE 1: write instruction selector
PHASE 2: ???
PHASE 3: profit!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20652 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 18:17:03 +00:00
Chris Lattner
7805fa4acc
Don't emit two comparisons when comparing a FP value against zero!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20651 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 16:29:26 +00:00
Chris Lattner
5b3a4553c1
Fix the missing symbols problem Bill was hitting. Patch contributed by
...
Bill Wendling!!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20649 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 15:38:16 +00:00
Chris Lattner
ec3f5c4fd7
Do not create ridiculously huge DSNodes, as described in the comments.
...
This speeds up the BU pass on 172.mgrid from 62.3 -> 0.1242s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20648 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 05:25:34 +00:00
Chris Lattner
c0d0e77042
Fix a bug where we would consider " .99" and "1.0" different because of the
...
leading whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20647 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 04:49:04 +00:00
Chris Lattner
84b80a214a
remove use of compat_iterator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20643 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-16 22:42:19 +00:00
Misha Brukman
fd67824386
Convert tabs to spaces
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20638 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-16 05:42:00 +00:00
Chris Lattner
c72e57314a
fix some 80 column violations
...
Add support for programs that define main in a .a file, such as f2c'd programs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20631 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 23:03:34 +00:00
Chris Lattner
fc82ef6797
consolidate LinkFiles into LinkItems, use lib_* iterators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20630 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 22:55:17 +00:00
Chris Lattner
ad988f397d
consolidate LinkLibraries into LinkItems
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20629 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 22:51:40 +00:00
Chris Lattner
38065a7e01
make sure to mark nodes in the globals graph incomplete after computing it
...
so that external globals (and whatever they point to) are marked incomplete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20628 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 22:47:18 +00:00
Chris Lattner
49e88e80c7
fix crashes when we only have a prototype for main.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20627 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 22:10:04 +00:00
Chris Lattner
4d5af8e894
Fix a crash that happens when mapping something like this:
...
{ short, short }
to
short
where the second short maps onto the second field of the first struct. In
this case, the struct index is not aligned, so we should avoid calling
getLink(2), which asserts out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20626 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 21:36:50 +00:00
Andrew Lenharth
f23e3a2d38
sure, I can set a flag, but if I never check it, why bother setting it? Should fix 20 programs :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20623 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 19:51:19 +00:00
Chris Lattner
36a13cdeea
Make computeGGToGMapping compute an invnodemap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20622 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 17:52:18 +00:00
Chris Lattner
2af8c5185a
Finally fix (the right way) the problem where functions like this:
...
void foo() {
G = 1;
}
would have an empty DSGraph even though G (a global) is directly used
in the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20619 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 17:14:09 +00:00
Chris Lattner
a5f47ea23d
Start using retnodes_* for iteration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20618 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 16:55:04 +00:00
Chris Lattner
5d85f8f66e
avoid varialbe name collisions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20606 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 06:29:12 +00:00
Chris Lattner
feb1550824
stop using method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20603 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 05:19:49 +00:00
Chris Lattner
39220ded94
stop using arg_front
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20599 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 05:03:36 +00:00
Chris Lattner
c5e7df1d60
stop using arg_back
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20598 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 04:59:17 +00:00
Chris Lattner
e4d5c441e0
This mega patch converts us from using Function::a{iterator|begin|end} to
...
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 04:54:21 +00:00
Chris Lattner
841957ebaf
Don't crash if computing a mapping to a node with zero size
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20595 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 04:40:24 +00:00
Chris Lattner
b0f92e3ed3
rename method, add counterpart
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20593 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 00:58:16 +00:00
Andrew Lenharth
ca3d59b1dc
FP 0.0 setcc optimization, and generate short branch sequence for setcc(FP) rather than stack usage
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20589 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-14 19:23:45 +00:00
Chris Lattner
b2b17bb65b
add a method to compute a commonly used mapping.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20588 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-14 19:22:47 +00:00
Chris Lattner
e2bc7b2517
regardless of whether or not the client things we should mark globals incomplete,
...
ALWAYS mark them incomplete if they are external!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20586 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 20:36:01 +00:00
Chris Lattner
270cf5025e
Make sure to remove incomplete markers before we add to them! :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20585 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 20:32:26 +00:00
Chris Lattner
b5ecd2e378
The incoming arguments to main (the argv list) are not complete!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20584 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 20:22:10 +00:00
Chris Lattner
a66e353cf9
After finishing BU analysis, move all global variables from the globals
...
graph into main and mark them complete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20583 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 20:15:06 +00:00
Chris Lattner
adfd5f14b4
ADd support for printing eqgraphs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20582 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 19:51:24 +00:00
Chris Lattner
2787e03d0e
Replace linear search with logrithmic one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20580 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 19:05:05 +00:00
Chris Lattner
e7ea48cb61
add a StructLayout::getElementContainingOffset method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20579 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 19:04:41 +00:00
Andrew Lenharth
84e2dc2d5d
Should fix mesa
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20577 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 00:43:20 +00:00
Chris Lattner
a4319e5826
make sure to mark nodes returned from functions as incomplete
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20576 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-12 14:58:28 +00:00
Chris Lattner
b25959a632
remove this from the PA namespace, leaving it in the llvm ns
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20574 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-12 12:08:52 +00:00
Chris Lattner
7aed7179bd
Move this from the pool allocator project to here, where it logically belongs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20570 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-12 11:51:30 +00:00
Andrew Lenharth
e87f6c31d2
remove a pseudo instruction and improve inline constant generation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20563 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-11 17:48:05 +00:00
Chris Lattner
e97568c3c4
I didn't mean to check this in. :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20555 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-10 20:59:51 +00:00
Chris Lattner
ee639f1760
Fix a bug where we would incorrectly do a sign ext instead of a zero ext
...
because we were checking the wrong thing. Thanks to andrew for pointing
this out!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20554 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-10 20:55:51 +00:00
Andrew Lenharth
572668aa38
yay for camel_cvs diff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20552 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-10 20:15:09 +00:00
Andrew Lenharth
3dc15f3022
some typoes and .bss isn't liked, at all
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20542 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-10 19:02:02 +00:00
Chris Lattner
f768bba43f
Allow the live interval analysis pass to be a bit more aggressive about
...
numbering values in live ranges for physical registers.
The alpha backend currently generates code that looks like this:
vreg = preg
...
preg = vreg
use preg
...
preg = vreg
use preg
etc. Because vreg contains the value of preg coming in, each of the
copies back into preg contain that initial value as well.
In the case of the Alpha, this allows this testcase:
void "foo"(int %blah) {
store int 5, int *%MyVar
store int 12, int* %MyVar2
ret void
}
to compile to:
foo:
ldgp $29, 0($27)
ldiq $0,5
stl $0,MyVar
ldiq $0,12
stl $0,MyVar2
ret $31,($26),1
instead of:
foo:
ldgp $29, 0($27)
bis $29,$29,$0
ldiq $1,5
bis $0,$0,$29
stl $1,MyVar
ldiq $1,12
bis $0,$0,$29
stl $1,MyVar2
ret $31,($26),1
This does not seem to have any noticable effect on X86 code.
This fixes PR535.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20536 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 23:05:19 +00:00
Andrew Lenharth
059c3ef70b
minor correction for Register that isn't used
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20535 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 20:48:23 +00:00
Chris Lattner
14723c264d
constant fold FP_ROUND_INREG, ZERO_EXTEND_INREG, and SIGN_EXTEND_INREG
...
This allows the alpha backend to compile:
bool %test(uint %P) {
%c = seteq uint %P, 0
ret bool %c
}
into:
test:
ldgp $29, 0($27)
ZAP $16,240,$0
CMPEQ $0,0,$0
AND $0,1,$0
ret $31,($26),1
instead of:
test:
ldgp $29, 0($27)
ZAP $16,240,$0
ldiq $1,0
ZAP $1,240,$1
CMPEQ $0,$1,$0
AND $0,1,$0
ret $31,($26),1
... and fixes PR534.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20534 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 18:37:12 +00:00
Chris Lattner
76da61621c
correct the computation of the isAbstract bit for types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20533 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 17:34:27 +00:00
Chris Lattner
50bc9ef507
Fix Regression/Analysis/BasicAA/2005-03-09-BrokenBasicAA.ll, a miscompilation
...
that Alkis found with Java, thanks Alkis!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20531 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 16:29:52 +00:00
Reid Spencer
9dbf1e5bb8
Fix a typo in an assertion comment.
...
Patch contributed by Vladimir Merzliakov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20529 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 15:19:41 +00:00
Chris Lattner
bac5b46396
Export two methods for getting -X and A-B.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20527 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 05:34:41 +00:00
Chris Lattner
1c81f1390d
get bugpoint working on ia64, by building .so's with -fpic. :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20525 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 03:31:02 +00:00
Chris Lattner
411eba0eaf
Fix a crash handling 'undef bool', fixing an llc crash on 186.crafty
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20523 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-08 22:53:09 +00:00
Reid Spencer
d632f4977e
Patch to make assembly output compatible with mingw compilation (identical
...
to cygwin)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20520 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-08 17:02:05 +00:00
Chris Lattner
dbf69f1992
Make sure to remove all dead type names from the symbol table, not just
...
struct types. This fixes Regression/CodeGen/CBackend/2005-03-08-RecursiveTypeCrash.ll,
a crash on Java output that Alkis reported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20519 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-08 16:19:59 +00:00
Misha Brukman
23ba0c5cf3
Single characters should be printed out as chars, not strings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20515 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-08 00:26:08 +00:00
Chris Lattner
001d16aa9c
Fix an apparent ambiguity compiling on PPC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20507 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-07 02:59:36 +00:00
Chris Lattner
2f62fdc9a7
fix a bug where we thought arguments were constants :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20506 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 22:52:29 +00:00
Chris Lattner
3f93197098
Fix Regression/Transforms/LoopStrengthReduce/dont_insert_redundant_ops.ll,
...
hopefully not breaking too many other things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20505 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 22:36:12 +00:00
Chris Lattner
2f9b19b4c9
implement Transforms/LoopStrengthReduce/invariant_value_first_arg.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20501 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 22:06:22 +00:00
Chris Lattner
2461dff070
minor simplifications of the code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20497 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 21:58:22 +00:00
Chris Lattner
fee3411379
trivial simplification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20494 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 21:35:38 +00:00
Chris Lattner
decc86db0c
Fix a bug where we could corrupt a parent loop's header info if we unrolled
...
a nested loop. This fixes Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll
and PR532
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20493 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 20:57:32 +00:00
Chris Lattner
f1b4d1dee6
rename insertEntry to insert
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20484 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 05:55:40 +00:00
Chris Lattner
e4c872a8fa
Merge SymbolTable::removeEntry into SymbolTable::remove, its only caller
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20483 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 05:51:09 +00:00
Chris Lattner
c27aa8ddb2
Delete the really inefficient method: void remove(const Type* Typ);
...
Speed up the symbol stripping code by avoiding a linear search of the
type table.
Get rid of removeEntry(type_iterator), since 'remove' is exactly the same
operation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20481 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 05:46:41 +00:00
Chris Lattner
82aa566795
Make this MUCH faster by avoiding a linear search in the symbol table code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20479 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 05:42:36 +00:00
Chris Lattner
a98cbe57ea
Remove some really gross and hard to understand code now that
...
InternallyInconsistent is always false.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20477 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 05:21:40 +00:00
Chris Lattner
ee4da939b0
Simplify some code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20476 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 05:13:42 +00:00
Chris Lattner
921c565888
remove these methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20474 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 02:37:47 +00:00
Chris Lattner
af4a9bb2ba
simplify and speed up some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20472 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 02:32:00 +00:00
Chris Lattner
b15fde2b78
simplify some code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20471 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 02:28:23 +00:00
Chris Lattner
04cb800c32
This fixes PR531, a crash when running the CBE on a bytecode file.
...
The problem is that Function::renameLocalSymbols is iterating through
the symbol table planes, occasionally calling setName to rename a value
(which used to do a symbol table remove/insert pair).
The problem is that if there is only a single value in a particular type
plane that the remove will nuke the symbol table plane, and the insert
will create and insert a new one. This hoses Function::renameLocalSymbols
because it has an iterator to the old plane, under the (very reasonable)
assumption that simply renaming a value won't cause the type plane to
disappear.
This patch fixes the bug by making the rename operation a single atomic
operation, which has a side effect of making the whole thing faster too. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20469 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-06 02:14:28 +00:00
Jeff Cohen
e43dd1b8e7
Reformat comments to fix 80 columns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20467 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 22:45:40 +00:00
Jeff Cohen
b21bf9a8d5
Reuse induction variables created for strength-reduced GEPs by other similar GEPs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20466 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 22:40:34 +00:00
Chris Lattner
0d1e40728d
remove all of the various setName implementations, consolidating them into
...
Value::setName, which is no longer virtual.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20464 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:51:50 +00:00
Chris Lattner
7acff25f7f
second argument to Value::setName is now gone.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20463 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:05:20 +00:00
Chris Lattner
3267265d78
Make sure the two arguments of a setcc instruction point to the same node.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20462 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:04:31 +00:00
Chris Lattner
262bb9ae5e
zap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20461 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:04:07 +00:00
Chris Lattner
8e1b8473eb
2nd arg to setName goes away.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20460 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:02:15 +00:00
Chris Lattner
ffdb920ec2
Constants never get names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20459 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:01:59 +00:00
Chris Lattner
18221ed507
Remove the 2nd argument to Value::setName
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20458 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:01:49 +00:00
Chris Lattner
569d54d4fa
don't break the build on 32-bit hosts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20455 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 17:47:38 +00:00
Andrew Lenharth
3ee6041ab3
fix data size stuff for architectures with bit challenged data types
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20453 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 15:30:33 +00:00
Chris Lattner
8b9081081b
Do not compute 1ULL << 64, which is undefined. This fixes Ptrdist/ks on the
...
sparc, and testcase Regression/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20445 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-04 23:21:33 +00:00
Andrew Lenharth
f69a98cea3
fix up stack pointer adjustments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20442 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-04 21:40:02 +00:00
Chris Lattner
f57cc3b7e2
Trivial cleanup patch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20436 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-04 20:27:46 +00:00
Andrew Lenharth
3381913322
fix FCMOVxx typo, set rem and div to hardcode target reg to be the same as the one the assembler uese, update ISel to put values in regs used by assembler for rem and div
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20434 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-04 20:09:23 +00:00
Jeff Cohen
2f3c9b7562
Add support for not strength reducing GEPs where the element size is a small
...
power of two. This emphatically includes the zeroeth power of two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20429 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-04 04:04:26 +00:00
Andrew Lenharth
8d46a268c5
turn on IEEE for compares
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20425 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-03 22:12:11 +00:00
Andrew Lenharth
4585969e87
beter Select on FP
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20424 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-03 21:47:53 +00:00
Chris Lattner
6d9b69fd5f
Print -X like this:
...
double test(double l1_X) {
return (-l1_X);
}
instead of like this:
double test(double l1_X) {
return (-0x0p+0 - l1_X);
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20423 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-03 21:12:04 +00:00
Andrew Lenharth
f3f475efee
LSR cleanup patch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20422 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-03 19:03:21 +00:00
Chris Lattner
f7fe494c19
Do not lower malloc's to pass "sizeof" expressions like this:
...
ltmp_0_7 = malloc(((unsigned )(&(((signed char (*)[784])/*NULL*/0)[1u]))));
Instead, just emit the literal constant, like this:
ltmp_0_7 = malloc(784u);
This works around a bug in ICC 8.1 compiling the CBE generated code. :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20415 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-03 01:04:50 +00:00
Chris Lattner
5f792c2c53
Add an optional argument to lower to a specific constant value instead of
...
to a "sizeof" expression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20414 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-03 01:03:43 +00:00
Misha Brukman
0fbd914362
Fix the spelling of the word `the'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20412 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 23:17:31 +00:00
Chris Lattner
31ab1b3d74
Print the module ID as a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20411 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 23:12:40 +00:00
Chris Lattner
4318a3d0e9
cleanup the cfg after lsr
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20410 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 21:56:00 +00:00
Andrew Lenharth
74d00d860e
remove 32 sign extend after 32 sextload and handle small negative constant
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20408 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 17:23:03 +00:00
Andrew Lenharth
e4f161c909
Added LSR as a beta pass for alpha
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20407 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 17:21:38 +00:00
Chris Lattner
0c7490617a
Add a temporary option for llc-beta: -enable-lsr-for-ppc, which turns on
...
Loop Strength Reduction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20399 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 06:19:22 +00:00
Reid Spencer
1af69a8131
Be slightly more accurate in an error message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20397 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 05:45:56 +00:00
Chris Lattner
ded3613fef
Fix a nasty order of evaluation bug that Gabor Greif ran into. Here's an
...
explanation from IRC:
|sabre| I think it's an order of evaluation thing
|sabre| for me, the RHS of the assignment is evaluated first
|sabre| getTypeDescription checks to see if ConcreteTypeDescription[Ty] contains anything
|sabre| since it doesn't, it computes and returns the value
|sabre| this gets put into the map.
|sabre| For you, the LHS is evaluated first.
|sabre| Map[Ty] (aka ConcreteTypeDescriptions[Ty]) inserts an empty string into the map, returning a reference
|sabre| getTypeDesc then sees the empty string in the map
|sabre| and returns it
|sabre| bork :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20394 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 03:54:43 +00:00
Jeff Cohen
0456e4a079
Fixed the following LSR bugs:
...
* Loop invariant code does not dominate the loop header, but rather
the end of the loop preheader.
* The base for a reduced GEP isn't a constant unless all of its
operands (preceding the induction variable) are constant.
* Allow induction variable elimination for the simple case after all.
Also made changes recommended by Chris for properly deleting
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20383 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-01 03:46:11 +00:00
Alkis Evlogimenos
d0656fc94d
Lower llvm.isunordered(a, b) into a != a | b != b.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20382 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-01 02:07:58 +00:00
Chris Lattner
ca76f357b9
Remove tabs from file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20380 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-28 19:36:15 +00:00
Chris Lattner
33e9d29b3b
Add support to the C backend for llvm.prefetch. Patch contributed by
...
Justin Wick!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20378 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-28 19:29:46 +00:00
Chris Lattner
edac2d1a80
recognize llvm.prefetch. Patch contributed by Justin Wick!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20377 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-28 19:28:00 +00:00
Chris Lattner
6f72282e02
Verify llvm.prefetch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20376 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-28 19:27:42 +00:00
Chris Lattner
0942b7caf1
Lower prefetch to a noop, patch contributed by Justin Wick!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20375 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-28 19:27:23 +00:00
Andrew Lenharth
e699e95571
fix integer division and stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20372 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-28 17:22:18 +00:00
Jeff Cohen
14dc638081
Fix crash in LSR due to attempt to remove original induction variable. However,
...
for reasons explained in the comments, I also deactivated this code as it needs
more thought.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20367 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-28 00:08:56 +00:00
Jeff Cohen
5e1e5e13ff
PHI nodes were incorrectly placed when more than one GEP is reduced in a loop.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20360 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 21:08:04 +00:00
Jeff Cohen
f465db6c6a
First pass at improved Loop Strength Reduction. Still not yet ready for prime time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20358 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 19:37:07 +00:00
Chris Lattner
3e27952a8b
Use const iterators where possible. Patch by Evan Jones!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20354 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 19:06:10 +00:00
Chris Lattner
35c81b0b12
Teach globalopt how memset/cpy/move affect memory, to allow better optimization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20352 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 18:58:52 +00:00
Chris Lattner
da895d6337
Fix spelling, patch contributed by Gabor Greif!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20343 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 06:18:25 +00:00
Chris Lattner
f8db8a0432
Fix spelling, patch contributed by Gabor Greif
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20342 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 06:15:51 +00:00
Chris Lattner
e56509c697
Remove some stuff I checked in accidentally
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20340 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 04:32:35 +00:00
Chris Lattner
7192e501eb
DCE a dead function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20339 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-26 23:36:45 +00:00
Reid Spencer
eaa06bb979
Implement an isBytecodeArchive method to determine if an archive contains
...
bytecode file members or not.
Patch Contributed By Adam Treat
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20338 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-26 22:00:32 +00:00
Chris Lattner
7ffc07dcf7
1 + 100 + 51 == 152, not 52.
...
If we fold three constants together (c1+c2+c3), make sure to keep
LHSC updated, instead of reusing (in this case), the 1 instead of the
partial sum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20337 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-26 18:50:19 +00:00
Chris Lattner
be54dcc8a9
remove extraneous cast
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20334 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-26 18:33:28 +00:00
Andrew Lenharth
2b6c4f554b
make BB labels be exported for debuging, add fp negation optimization, further pecimise the FP instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20332 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-25 22:55:15 +00:00
Chris Lattner
6e84bd7d59
Handle null a bit more carefully.
...
Actually teach dsa about select instructions. This doesn't affect the
graph in any way other than not setting a spurious U marker on pointer
nodes that are selected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20324 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-25 01:27:48 +00:00
Chris Lattner
753b113cdf
This instruction:
...
X = gep null, ...
Used to not create a scalar map entry for X, which caused clients to barf.
This is bad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20316 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 19:55:31 +00:00
Chris Lattner
d7642c4f2d
Fix a bug introduced by revision 1.187 of this file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20308 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 18:48:07 +00:00
Andrew Lenharth
016947578f
fix Allocas. Really. I mean it this time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20306 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 18:36:32 +00:00
Chris Lattner
aab1820816
Fix some problems where the verifier would crash on invalid input instead of
...
reporting the problem and exiting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20302 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 16:58:29 +00:00
Chris Lattner
623369ac56
Implement Transforms/SimplifyCFG/switch_thread.ll
...
This does a simple form of "jump threading", which eliminates CFG edges that
are provably dead. This triggers 90 times in the external tests, and
eliminating CFG edges is always always a good thing! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20300 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 06:17:52 +00:00
Chris Lattner
d1a326006d
switch instructions only allow constantints for their values, be more specific.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20298 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 05:32:09 +00:00
Chris Lattner
7e6182319d
use more specific cast.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20297 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 05:26:04 +00:00
Chris Lattner
69331f5726
add more checking
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20296 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 05:25:17 +00:00
Chris Lattner
83beacddc9
Do not read free'd memory when printing an error message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20295 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 04:59:49 +00:00
Chris Lattner
ad993cbb77
add a new method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20293 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 02:37:26 +00:00
Tanya Lattner
00aaadf9f0
Only print out machine instructions before modulo scheduling if we are actually doing modulo scheduling! :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20292 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 02:14:44 +00:00
Andrew Lenharth
3a7118d7da
Ah the problems you have to fix when you stray from the One True Way (TM)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20290 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-23 17:33:42 +00:00
Chris Lattner
1f21ef1511
make this more efficient. Scan up to 16 nodes, not the whole list.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20289 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-23 16:53:04 +00:00
Chris Lattner
8daf056c90
new method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20288 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-23 16:51:11 +00:00
Chris Lattner
35f0aecdb0
Reduce the amount of searching this assertion does. On a testcase of mine,
...
this reduces the time for -simplifycfg in a debug build from 106s to 14.82s
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20286 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-23 07:09:08 +00:00
Chris Lattner
572dd08204
Silence some uninit variable warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20284 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-23 05:57:21 +00:00
Tanya Lattner
01b4abd348
Fixed bug in findAllcircuits. Fixed branch addition to schedule. Added debug information.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20280 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-23 02:01:42 +00:00
Andrew Lenharth
7bc47020f6
oops
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20278 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-22 23:29:25 +00:00
Chris Lattner
13d0108666
Remove use of bind_obj, deleter, and finegrainify namespacification.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20277 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-22 23:27:21 +00:00
Chris Lattner
cfa2f8eef4
Remove use of bind_obj
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20276 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-22 23:22:58 +00:00
Chris Lattner
a08976b092
C++ is not a functional programming language.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20274 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-22 23:13:58 +00:00
Andrew Lenharth
032f235f02
dynamic stack allocas
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20273 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-22 21:59:48 +00:00
Chris Lattner
84734ce8ef
Fix a bug in the 'store fpimm, ptr' -> 'store intimm, ptr' handling code.
...
Changing 'op' here caused us to not enter the store into a map, causing
reemission of the code!! In practice, a simple loop like this:
no_exit: ; preds = %no_exit, %entry
%indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ] ; <uint> [#uses=3]
%tmp.4 = getelementptr "complex long double"* %P, uint %indvar, uint 0 ; <double*> [#uses=1]
store double 0.000000e+00, double* %tmp.4
%indvar.next = add uint %indvar, 1 ; <uint> [#uses=2]
%exitcond = seteq uint %indvar.next, %N ; <bool> [#uses=1]
br bool %exitcond, label %return, label %no_exit
was being code gen'd to:
.LBBtest_1: # no_exit
movl %edx, %esi
shll $4, %esi
movl $0, 4(%eax,%esi)
movl $0, (%eax,%esi)
incl %edx
movl $0, (%eax,%esi)
movl $0, 4(%eax,%esi)
cmpl %ecx, %edx
jne .LBBtest_1 # no_exit
Note that we are doing 4 32-bit stores instead of 2. Now we generate:
.LBBtest_1: # no_exit
movl %edx, %esi
incl %esi
shll $4, %edx
movl $0, (%eax,%edx)
movl $0, 4(%eax,%edx)
cmpl %ecx, %esi
movl %esi, %edx
jne .LBBtest_1 # no_exit
This is much happier, though it would be even better if the increment of ESI
was scheduled after the compare :-/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20265 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-22 07:23:39 +00:00
Andrew Lenharth
97f7735125
no longer build as a shared library
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20264 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-22 04:58:26 +00:00
Chris Lattner
6943570f3a
Fix problems running the HowToUseJIT on powerpc, and probably problems with
...
ANY program that does not have all functions internalized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20258 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-20 18:43:35 +00:00
Jeff Cohen
45a1b26caa
Fix silly mistake.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20256 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-20 02:48:51 +00:00
Jeff Cohen
875d08e36b
Implement standard I/O redirection in ExecuteAndWait().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20255 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-20 02:43:04 +00:00
Chris Lattner
97716a47a1
Add support for ".so" files compiled with LLVM which contain LLVM bytecode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20253 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-19 18:30:29 +00:00
Chris Lattner
b9476d9b45
Eliminate silly warnings from the linker of the form:
...
WARNING: Type conflict between types named 'union.._604.'.
Src=' %union.._604.'.
Dest=' %union.._604.'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20252 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-19 17:52:37 +00:00
Jeff Cohen
23a1cf3e08
Change __MINGW to __MINGW32__. Patch submitted by Henrik Bach.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20243 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-19 03:01:13 +00:00
Jeff Cohen
d79bcfddbc
Make PreventCoreFiles() do the right thing on Windows.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20237 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-18 07:05:18 +00:00
Misha Brukman
1fb623e4ed
Fix compilation errors with VS 2005, patch contributed by Aaron Gray.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20232 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 21:40:27 +00:00
Misha Brukman
d3f03e4b50
Fix compilation errors with VS 2005, patch by Aaron Gray.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20231 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 21:39:27 +00:00
Chris Lattner
d8658616cf
Don't rely on doubles comparing identical to each other, which doesn't work
...
for 0.0 and -0.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20230 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 20:17:32 +00:00
Chris Lattner
aa781b3404
Don't sink argument loads into loops or other bad places. This disables folding of argument loads with instructions that are not in the entry block.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20228 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 19:40:32 +00:00
Chris Lattner
1a84bd38ef
Do not mark obviously unreachable blocks live when processing PHI nodes,
...
and handle incomplete control dependences correctly. This fixes:
Regression/Transforms/ADCE/dead-phi-edge.ll
-> a missed optimization
Regression/Transforms/ADCE/dead-phi-edge.ll
-> a compiler crash distilled from QT4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20227 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 19:28:49 +00:00
Chris Lattner
2352fec205
Scary typo that fixes Regression/Transforms/IndVarsSimplify/2005-02-17-TruncateExprCrash.ll
...
and PR515.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20224 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 16:54:16 +00:00
Jeff Cohen
e5f7e65f95
Arg list already has program name in it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20208 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-16 04:43:45 +00:00
Tanya Lattner
db1680b2be
Fixed node deletion bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20207 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-16 04:00:59 +00:00
Chris Lattner
2ee51cbeb8
Instead of doing a manual comparison loop, just use memcmp, thanks to JohnC
...
for the suggestion! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20203 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 22:12:10 +00:00
Chris Lattner
e4b6a86852
Make this more efficient now that we know both files are the same length.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20202 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 22:01:43 +00:00
Misha Brukman
1e1a99fffa
Fix spelling
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20201 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 21:59:53 +00:00
Reid Spencer
45d55641fa
Adjust DiffFilesWithTolerance to help poor cygwin's mmap facility by
...
handling zero length files a little more intelligently. If both files are
zero length then we return 0 (true) indicating a match. If only one of the
files is zero length then we return 1 (false) indicating that the files
differ. If the files don't agree in length then they can't match so we
skip the first loop that looks for a quick match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20200 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 21:47:02 +00:00
Chris Lattner
7a823bd01f
Fix a problem where the PPC backend lost track of the fact that it had
...
to save and restore the LR register on entry and exit of a leaf function
that needed to access globals or the constant pool. This should hopefully
fix oscar from sending the PPC tester spinning out of control.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20197 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 20:26:49 +00:00
Chris Lattner
7a0c775044
Add a sanity check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20195 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 18:48:48 +00:00
Chris Lattner
d672ab936f
Add a new method to make it easy to update graphs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20194 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 18:40:55 +00:00
Chris Lattner
8399e02a2c
Fix volatile load/store of pointers. Consider this testcase:
...
void %test(int** %P) {
%A = volatile load int** %P
ret void
}
void %test2(int*** %Q) {
%P = load int*** %Q
volatile store int** %P, int*** %Q
ret void
}
instead of emitting:
void test(int **l1_P) {
int *l2_A;
l2_A = (int **((volatile int **)l1_P));
return;
}
void test2(int ***l2_Q) {
int **l1_P;
l1_P = *l2_Q;
*((volatile int ***)l2_Q) = l1_P;
return;
}
... which is loading/storing volatile pointers, not through volatile pointers,
emit this (which is right):
void test(int **l1_P) {
int *l3_A;
l3_A = *((int * volatile*)l1_P);
return;
}
void test2(int ***l2_Q) {
int **l1_P;
l1_P = *l2_Q;
*((int ** volatile*)l2_Q) = l1_P;
return;
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20191 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 05:52:14 +00:00
Chris Lattner
0798056b28
Fix a bug in my previous change to this, which broke the build on sparcs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20184 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 21:42:10 +00:00
Chris Lattner
27e192196f
Print GEP offsets as signed values instead of unsigned values. On X86, this
...
prints:
getelementptr (int* %A, int -1)
as: "(A) - 4" instead of "(A) + 18446744073709551612", which makes the
assembler much happier.
This fixes test/Regression/CodeGen/X86/2005-02-14-IllegalAssembler.ll,
and Benchmarks/Prolangs-C/cdecl with LLC on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20183 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 21:40:26 +00:00
Chris Lattner
8a7980b5ea
Fix the second bug attached to PR504.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20181 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 20:11:45 +00:00
Chris Lattner
a92d12c053
Work around GCC PR19958, which causes programs to sometimes crash after
...
printing help output or version info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20180 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 19:17:29 +00:00
Misha Brukman
b70aaa62b6
Write out single characters as chars, not strings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20179 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 18:52:35 +00:00
Chris Lattner
9d30e22da0
Implement CodeGen/CBackend/2005-02-14-VolatileOperations.ll
...
Volatile loads and stores need to emit volatile pointer operations in C.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20177 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 16:47:52 +00:00
Andrew Lenharth
572af908e4
fix setcc on floats, fixes singlesource:pi, perhaps others
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20172 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 05:41:43 +00:00
Chris Lattner
550c57cb30
Fix the llvm bootstrap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20170 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 23:37:09 +00:00
Chris Lattner
45495c5248
Move helper function here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20168 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 23:13:47 +00:00
Chris Lattner
946af52687
If errno is zero strerror_r does not modify the buffer, leaving it unterminated.
...
This causes garbage to be printed out after error messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20165 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 22:46:37 +00:00
Reid Spencer
818827d734
Make the check for global variables the same as the one for functions. In
...
both cases they are looking for non-external variables/functions that do
not have internal linkage. Using "!isExternal()" is a little more
understandable than "hasInitializer()"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20155 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 18:12:20 +00:00
Chris Lattner
1117bb0e99
Nuke blank line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20154 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 17:54:21 +00:00
Chris Lattner
12945acd4a
Minor cleanup. No need to explicitly tell the compiler the template arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20153 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 17:50:16 +00:00
Chris Lattner
b52f1c2950
Make sure to clear the LazyFunctionLoadMap after we ParseAllFunctionBodies.
...
Otherwise, clients who call ParseAllFunctionBodies will attempt to parse
the function bodies twice, which is (uh) very very bad (tm).
This fixes gccld on python.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20152 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 17:48:18 +00:00
Chris Lattner
e5cea5eb89
Do not put internal symbols into the symbol table. This shrinks the symbol
...
table for archives in common cases, and prevents trying to resolve a
external reference with an internal reference. This shrinks the libpython.a
symbol table from 126302 to 19770 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20151 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 17:42:11 +00:00
Chris Lattner
50c301b9bb
Print something useful for gccld -v with an archive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20148 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 15:26:14 +00:00
Chris Lattner
4dc534c7fe
Correct the recursive PHI node handling routines in a way that CANNOT induce
...
infinite loops (using the new replaceSymbolicValuesWithConcrete method).
This patch reverts this patch:
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050131/023830.html
... which was an attempted fix for this problem. Unfortunately, that patch
caused test/Regression/Transforms/IndVarsSimplify/exit_value_tests.llx to fail
and slightly castrated the entire analysis. This patch fixes it right.
This patch is dedicated to jeffc, for making me deal with this. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20146 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 04:37:18 +00:00
Andrew Lenharth
093f32785b
try to do better match for i32 adds
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20143 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-12 21:11:17 +00:00
Andrew Lenharth
9b1e659cd6
make FP conversion more conservative (matches gcc)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20142 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-12 21:10:58 +00:00
Andrew Lenharth
7536eeabf6
oops, I was sure this had already gond though the nightly tester
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20141 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-12 20:42:09 +00:00
Andrew Lenharth
ebce50464a
added sign extend for boolean
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20137 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-12 19:35:12 +00:00
Chris Lattner
e6f8c5a716
Allow globals to be of different const'nesses when we link.
...
This finally resolves PR502, PR450,
and test/Regression/Linker/2005-02-12-ConstantGlobals{,-2}.ll correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20135 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-12 19:20:28 +00:00
Chris Lattner
f6249261a9
Fix for testcase Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll
...
and PR504.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20129 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-12 03:26:49 +00:00
Andrew Lenharth
3e31592dca
fix a bunch of regressions due to call behavior
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20110 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-10 20:10:38 +00:00
Alkis Evlogimenos
f64ea9d122
Localize globals if they are only used in main(). This replaces the
...
global with an alloca, which eventually gets promoted into a
register. This enables a lot of other optimizations later on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20109 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-10 18:36:30 +00:00
Tanya Lattner
db40cf1b58
Added new circuit finding alogrithm.
...
Fixed bug in graph so that phi ite diff edges are added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20108 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-10 17:02:58 +00:00
Tanya Lattner
4bcb011f96
Allow modsched and local scheduling to both be run.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20107 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-10 17:02:06 +00:00
Andrew Lenharth
63f2ab2d1b
so, if you beat on it, you too can talk emacs into having a sane indenting policy... Also, optimize many function calls with pc-relative calls (partial prologue skipping for that case coming soon), try to fix the random jumps to strange places problem by pesimizing div et. al. register usage and fixing up GP before using, some calling convention tweaks, and make frame pointer unallocatable (not strickly necessary, but let's go for correctness first)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20106 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-10 06:25:22 +00:00