Chris Lattner
577aec1428
Fix the prolog epilog code inserter to match the documentation and support
...
targets whose stack grows up.
Patch contributed by Vladimir Prus
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14111 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 06:23:35 +00:00
Chris Lattner
32305f7763
Fix the fixed stack offset, patch contributed by Vladimir Prus
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14110 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 06:19:25 +00:00
Chris Lattner
3285a6f426
Fix a bug in my checkin from last night that caused miscompilations of
...
186.crafty, fhourstones and 132.ijpeg.
Bugpoint makes really nasty miscompilations embarassingly easy to find. It
narrowed it down to the instcombiner and this testcase (from fhourstones):
bool %l7153_l4706_htstat_loopentry_2E_4_no_exit_2E_4(int* %i, [32 x int]* %works, int* %tmp.98.out) {
newFuncRoot:
%tmp.96 = load int* %i ; <int> [#uses=1]
%tmp.97 = getelementptr [32 x int]* %works, long 0, int %tmp.96 ; <int*> [#uses=1]
%tmp.98 = load int* %tmp.97 ; <int> [#uses=2]
%tmp.99 = load int* %i ; <int> [#uses=1]
%tmp.100 = and int %tmp.99, 7 ; <int> [#uses=1]
%tmp.101 = seteq int %tmp.100, 7 ; <bool> [#uses=2]
%tmp.102 = cast bool %tmp.101 to int ; <int> [#uses=0]
br bool %tmp.101, label %codeRepl4.exitStub, label %codeRepl3.exitStub
codeRepl4.exitStub: ; preds = %newFuncRoot
store int %tmp.98, int* %tmp.98.out
ret bool true
codeRepl3.exitStub: ; preds = %newFuncRoot
store int %tmp.98, int* %tmp.98.out
ret bool false
}
... which only has one combination performed on it:
$ llvm-as < t.ll | opt -instcombine -debug | llvm-dis
IC: Old = %tmp.101 = seteq int %tmp.100, 7 ; <bool> [#uses=1]
New = setne int %tmp.100, 0 ; <bool>:<badref> [#uses=0]
IC: MOD = br bool %tmp.101, label %codeRepl3.exitStub, label %codeRepl4.exitStub
IC: MOD = %tmp.97 = getelementptr [32 x int]* %works, uint 0, int %tmp.96 ; <int*> [#uses=1]
It doesn't get much better than this. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14109 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 02:33:20 +00:00
Chris Lattner
448c323cba
More minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14108 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 02:12:35 +00:00
Chris Lattner
48595f18cf
Eliminate many occurrances of Instruction::
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14107 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 02:07:29 +00:00
Chris Lattner
1797ce1e24
Share some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14106 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 01:57:38 +00:00
Chris Lattner
5118872dd2
Add new BinaryOperator::createAdd/Sub/... methods to avoid having to type
...
llvm::Instruction:: all of the time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14105 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 01:43:29 +00:00
Chris Lattner
e9e326e2eb
Tolerate more errors
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14104 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 22:22:10 +00:00
Brian Gaeke
7fa84b70c3
Encode %fsr correctly; don't fail an assertion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14103 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 21:54:59 +00:00
Brian Gaeke
40e7fdc05a
Fix encoding of ST*FSR instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14102 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 21:54:58 +00:00
Brian Gaeke
e8a6bee3c9
Fix assertion failure message to have the right method name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14101 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 20:44:42 +00:00
Chris Lattner
69566459cc
Make the asmwriter much more tolerant of errors (which are common when working
...
on new front-ends and stuff). Also get rid of some tabs that snuck in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14100 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 19:41:19 +00:00
Reid Spencer
389174b098
Columnized the compilation statistics for easier reading.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14099 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 18:29:15 +00:00
Chris Lattner
ff2c64c979
Fix the really bizarre stuff that happened last night in the tester
...
due to non-numeric diff failures that caused fpcmp to go into infinite loops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14098 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 18:28:53 +00:00
Reid Spencer
fc621e2878
Made it possible for the printInfoComment method to invoke getSlot in
...
such a way that if the Value being printed is standalone that we don't
assert and abort but just print ":??" for the slot number instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14097 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 15:26:53 +00:00
John Criswell
6b5bd5857d
Fix for PR#366. We use getClassB() so that we can handle cast instructions
...
that cast to bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14096 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 15:18:51 +00:00
Chris Lattner
457dd829ad
Implement InstCombine/select.ll:test15*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14095 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 07:59:58 +00:00
Chris Lattner
9e28f18fb3
More instcombine testcases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14094 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 07:59:40 +00:00
Reid Spencer
525f228d95
Cleanup alignment of output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14093 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:22:00 +00:00
Reid Spencer
4502b37d7a
Add some new fields for bytecode analysis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14092 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:18:53 +00:00
Reid Spencer
edc3b582ae
Implement analysis output. Don't dump function details unless requested.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14091 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:17:58 +00:00
Reid Spencer
649ee57b1d
Implement some rudimentary analysis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14090 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:16:43 +00:00
Reid Spencer
0545b3e673
Clean up indentation of file body output.
...
Don't dump functions unless "detailedResults" is requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14089 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:16:19 +00:00
Reid Spencer
a670c414f7
Move parsing details to Parser.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14088 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:15:21 +00:00
Reid Spencer
926572c478
Bring some things out of header files that belong only in this file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14087 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:14:52 +00:00
Chris Lattner
f523d06816
Be more careful about the order we put stuff onto the worklist. This allow us to
...
collapse this:
bool %le(int %A, int %B) {
%c1 = setgt int %A, %B
%tmp = select bool %c1, int 1, int 0
%c2 = setlt int %A, %B
%result = select bool %c2, int -1, int %tmp
%c3 = setle int %result, 0
ret bool %c3
}
into:
bool %le(int %A, int %B) {
%c3 = setle int %A, %B ; <bool> [#uses=1]
ret bool %c3
}
which is handy, because the Java FE makes these sequences all over the place.
This is tested as: test/Regression/Transforms/InstCombine/JavaCompare.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14086 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 05:08:07 +00:00
Chris Lattner
16ea43b008
New testcase that is important for the Java FE
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14085 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 05:07:01 +00:00
Reid Spencer
6269ded8ee
Cleaned up a dead header file to prevent duplicate definition warnings
...
in doxygen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14084 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 04:38:34 +00:00
Chris Lattner
2be51ae22d
Implement select.ll:test14*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14083 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 04:24:29 +00:00
Chris Lattner
4561db2edc
New testcase for the instruction combiner that happen often in the Java FE
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14082 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 04:23:57 +00:00
Chris Lattner
aab3aff97b
Minor tweaks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14081 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 03:59:05 +00:00
Reid Spencer
1a8c917ec6
Regularize title of Regression Test section. Clean up some blank space.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14080 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 02:07:25 +00:00
Chris Lattner
24738a72b4
Bug fixed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14079 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 01:09:16 +00:00
Chris Lattner
2a5020150c
Workaround or a VS miscompilation bug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14078 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 23:21:39 +00:00
Chris Lattner
97baedc8c5
I checked and no clients expect this to return null for unconditional branches
...
Simplify code and make it more uniform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14077 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 22:03:05 +00:00
Chris Lattner
47c31a8248
Don't grab the condition of unconditional branches!
...
This fixes PR363
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14076 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 21:50:30 +00:00
Brian Gaeke
8e6e7c90ce
Fix a minor bug in the map - since this pass adds a global symbol, it must be
...
accounted for in the map (at least, in its current format).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14075 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 20:08:30 +00:00
Brian Gaeke
0bbcd6bfd1
Add a forwarding method pop_front() that allows you to delete instructions
...
from the beginning of a MBB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14074 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:47 +00:00
Brian Gaeke
777a1cde66
Add a TmpInstruction ctor that doesn't take a MCFI.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14073 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:46 +00:00
Brian Gaeke
10c508b286
Explicitly specify libtool tag "CXX" so that if you setenv CXX to something
...
libtool can't parse, e.g., "/path/to/g++ -some-funny-options",
then it will still be able to compile and link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14072 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:45 +00:00
Chris Lattner
82d55902c6
Fix a link error using VS8.0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14071 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 17:53:24 +00:00
Chris Lattner
85b0195f0e
Apparently a particular vendor compiler uses the struct/class tag to MANGLE
...
symbols with. Therefore, if you do not use struct/class consistently, you can
get LINK ERRORS. grr.
This fixes the link errors for libsupport and vmcore.
-Chris
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 17:44:21 +00:00
Misha Brukman
ef39012738
Fix case of doxygen directive `\p': it's lowercase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14068 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 13:49:17 +00:00
Reid Spencer
f5d0af3916
* Fix indentation of Regression Test Results by making sure the
...
GetQMTestResults function closes all its open tags.
* Cause XFAIL results to not be reported at all except in the stats.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14067 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 08:01:33 +00:00
Reid Spencer
7c76d33c78
Put in a place holder for describing the differences in bytecode format
...
between LLVM versions. This is just a reminder so I don't forget to
document it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14066 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 07:41:41 +00:00
Reid Spencer
624c543887
Add a note about llvm-abcd, the Analysis of ByteCode Dumper
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14065 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 07:30:31 +00:00
Chris Lattner
ea95551d4a
Ooh, that fixed the annoying warning!!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14064 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 07:19:29 +00:00
Chris Lattner
11eaf53e2a
Bug fixed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14063 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 07:15:52 +00:00
Chris Lattner
2917ca87f7
New testcase for PR355
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14062 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 07:11:14 +00:00
Chris Lattner
72b08c97d3
Testcase for PR355
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14061 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 07:10:11 +00:00