summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix the prolog epilog code inserter to match the documentation and supportChris Lattner2004-06-101-9/+33
| | | | | | | | targets whose stack grows up. Patch contributed by Vladimir Prus llvm-svn: 14111
* Fix the fixed stack offset, patch contributed by Vladimir PrusChris Lattner2004-06-102-2/+2
| | | | llvm-svn: 14110
* Fix a bug in my checkin from last night that caused miscompilations ofChris Lattner2004-06-101-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. :) llvm-svn: 14109
* More minor cleanupsChris Lattner2004-06-101-11/+8
| | | | llvm-svn: 14108
* Eliminate many occurrances of Instruction::Chris Lattner2004-06-101-134/+112
| | | | llvm-svn: 14107
* Share some codeChris Lattner2004-06-101-11/+3
| | | | llvm-svn: 14106
* Tolerate more errorsChris Lattner2004-06-091-1/+2
| | | | llvm-svn: 14104
* Encode %fsr correctly; don't fail an assertion.Brian Gaeke2004-06-091-0/+9
| | | | llvm-svn: 14103
* Fix encoding of ST*FSR instructions.Brian Gaeke2004-06-091-7/+7
| | | | llvm-svn: 14102
* Fix assertion failure message to have the right method name.Brian Gaeke2004-06-091-1/+1
| | | | llvm-svn: 14101
* Make the asmwriter much more tolerant of errors (which are common when workingChris Lattner2004-06-091-16/+23
| | | | | | on new front-ends and stuff). Also get rid of some tabs that snuck in. llvm-svn: 14100
* Made it possible for the printInfoComment method to invoke getSlot inReid Spencer2004-06-091-17/+16
| | | | | | | 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. llvm-svn: 14097
* Fix for PR#366. We use getClassB() so that we can handle cast instructionsJohn Criswell2004-06-091-1/+1
| | | | | | that cast to bool. llvm-svn: 14096
* Implement InstCombine/select.ll:test15*Chris Lattner2004-06-091-40/+90
| | | | llvm-svn: 14095
* Cleanup alignment of output.Reid Spencer2004-06-092-28/+28
| | | | llvm-svn: 14093
* Implement analysis output. Don't dump function details unless requested.Reid Spencer2004-06-092-2/+40
| | | | llvm-svn: 14091
* Implement some rudimentary analysis.Reid Spencer2004-06-092-6/+94
| | | | llvm-svn: 14090
* Clean up indentation of file body output.Reid Spencer2004-06-092-18/+20
| | | | | | Don't dump functions unless "detailedResults" is requested. llvm-svn: 14089
* Move parsing details to Parser.cpp.Reid Spencer2004-06-092-50/+0
| | | | llvm-svn: 14088
* Bring some things out of header files that belong only in this file.Reid Spencer2004-06-092-0/+42
| | | | llvm-svn: 14087
* Be more careful about the order we put stuff onto the worklist. This allow ↵Chris Lattner2004-06-091-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 14086
* Cleaned up a dead header file to prevent duplicate definition warningsReid Spencer2004-06-091-1/+1
| | | | | | in doxygen. llvm-svn: 14084
* Implement select.ll:test14*Chris Lattner2004-06-091-35/+59
| | | | llvm-svn: 14083
* Workaround or a VS miscompilation bugChris Lattner2004-06-081-1/+1
| | | | llvm-svn: 14078
* Don't grab the condition of unconditional branches!Chris Lattner2004-06-081-7/+8
| | | | | | This fixes PR363 llvm-svn: 14076
* Fix a minor bug in the map - since this pass adds a global symbol, it must beBrian Gaeke2004-06-081-0/+4
| | | | | | accounted for in the map (at least, in its current format). llvm-svn: 14075
* Add a TmpInstruction ctor that doesn't take a MCFI.Brian Gaeke2004-06-081-2/+13
| | | | llvm-svn: 14073
* Fix a link error using VS8.0Chris Lattner2004-06-081-1/+1
| | | | llvm-svn: 14071
* Fix the bug that was preventing the parser from working on all bytecodeReid Spencer2004-06-082-10/+10
| | | | | | | | files. It was reading non-initialized global vars when the flag said it was initialized and vice versa. Causes mis-alignment since initialized and non-initialized constants have different bytecode lengths. llvm-svn: 14057
* Make it #include Parser.h instead of AnalyzerInternals.h since it onlyReid Spencer2004-06-081-1/+1
| | | | | | needs the BytecodeHandler interface which is now in Parser.h llvm-svn: 14056
* Adjust what's included to compensate for changes in Parser.hReid Spencer2004-06-082-0/+22
| | | | llvm-svn: 14055
* Merged BytecodeHandler.h into Parser.h since the parser and the handlerReid Spencer2004-06-083-359/+752
| | | | | | | | must always coexist. Cleaned up the documentation on these interfaces significantly. This is in preparation for moving Parser.h to the include directories to make it a public interface. llvm-svn: 14054
* Fix PR361.Chris Lattner2004-06-071-1/+2
| | | | | | Dominance properties don't hold in unreachable code llvm-svn: 14053
* Make all of this functionality work directly on win32. Properly conditionalizeChris Lattner2004-06-071-13/+29
| | | | | | system specific stuff on HAVE_MKSTEMP llvm-svn: 14051
* Implement getTimeRecord natively in Win32, properly conditionalize theChris Lattner2004-06-071-7/+28
| | | | | | getrusage implementation on HAVE_GETRUSAGE llvm-svn: 14050
* Commit For New Tool: llvm-abcd (Analysis of ByteCode Dumper). This toolReid Spencer2004-06-0717-1/+4344
| | | | | | | | | | | | | | | | | | | | | will (eventually) provide statistical analysis of bytecode files as well as the ability to dump them in a low level format (slot numbers not resolved). The purpose of this is to aid in the Type!=Value change of bug 122. With this initial release, llvm-abcd merely dumps out the bytecode. However, the infrastructure for separating bytecode parsing from handling the parsing events is in place. The style chosen is similar to SAX XML parsing where a handler object is called to handlign the parsing events. This probably isn't useful to anyone but me right now as there is no analysis yet, and the dumper doesn't work on every bytecode file. It will probably be useful by the end of this week. Note that there is some duplication of code from the bytecode reader. This was done to eliminate errors from being introduced in the reader and to minimize the impact to other LLVM developers. At some point, the Analyzer and the Reader will be integrated to use the same infrastructure. Also, sorry for the minor change to Instruction.h but I just couldn't bring myself to write code that depends on Instruction internals. llvm-svn: 14048
* Add some notes so I can throw away one of my many todo lists.Chris Lattner2004-06-051-0/+6
| | | | llvm-svn: 14046
* Fix GCC warningChris Lattner2004-06-051-1/+1
| | | | llvm-svn: 14045
* Fix GCC warningsChris Lattner2004-06-051-2/+2
| | | | llvm-svn: 14044
* Include cerrno.Alkis Evlogimenos2004-06-051-1/+2
| | | | llvm-svn: 14041
* Remove an unused variable.Chris Lattner2004-06-051-7/+10
| | | | | | | Work around for bogus errors: no those static functions don't need to be executed to be initialized! llvm-svn: 14040
* Add missing #includeChris Lattner2004-06-051-0/+1
| | | | llvm-svn: 14037
* Work around VS bugChris Lattner2004-06-051-3/+2
| | | | llvm-svn: 14036
* As much as I dislike doing this, it's the only fix for VC8.0 that I can comeChris Lattner2004-06-051-2/+4
| | | | | | up with, even though it's perfectly conformant code. :( llvm-svn: 14034
* Remove unused varChris Lattner2004-06-051-1/+0
| | | | llvm-svn: 14033
* Squelch a warningChris Lattner2004-06-041-1/+2
| | | | llvm-svn: 14032
* Delete some unreachable codeChris Lattner2004-06-041-5/+0
| | | | llvm-svn: 14031
* * No more CachedWriter::setStream()Misha Brukman2004-06-041-52/+47
| | | | | | | * ostream is back to being a reference instead of a pointer * Output single characters as chars, not as length-1 strings llvm-svn: 14030
* Fix up some spacing & fix a typo in an assertion in cpValue2Value.Brian Gaeke2004-06-041-3/+3
| | | | llvm-svn: 14027
* Ugh, apparently there is no common ground here.Chris Lattner2004-06-041-0/+5
| | | | llvm-svn: 14026
OpenPOWER on IntegriCloud