summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* When a priority_queue is empty, the behavior of top() operator isEvan Cheng2006-05-30
| | | | | | | non-deterministic. Returns NULL when it's empty! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28560 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand ret into "CopyToReg;BRIND"Rafael Espindola2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28559 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable -fno-use-cxa-atexit on darwin/ppc also.Chris Lattner2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28558 91177308-0d34-0410-b5e6-96231b3b80d8
* Undo a patch that breaks llvm-as because the warning message is written toReid Spencer2006-05-30
| | | | | | | | stdout when the output of llvm-as is also written to stdout. We'll have to fix tcl some other way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28557 91177308-0d34-0410-b5e6-96231b3b80d8
* Write the WARNING message to cout instead of cerr. Writing to cerr causesReid Spencer2006-05-30
| | | | | | | | Tcl to claim that the program had an error and thus produces errors in the dejagnu testing when its really just a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28556 91177308-0d34-0410-b5e6-96231b3b80d8
* Make doc comment visible in doxygen output. Clarify Type construction.Vladimir Prus2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28555 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix many small bugs in llvm2cpp. This patch gets llvm2cpp working withReid Spencer2006-05-30
| | | | | | | | everything except PHI nodes and one odd recurse/opaque type situation. PHI nodes forward reference INSTRUCTIONS (aaaaaaaahhhhhhh!) :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28554 91177308-0d34-0410-b5e6-96231b3b80d8
* Properly document the second form of ConstArray::get()Reid Spencer2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28553 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust the interface to ConstantArray::get. The previousReid Spencer2006-05-30
| | | | | | | | | | implementation always added a null byte to the end of the string. It turns out that this is not always wanted. By adding a length parameter we preserve this behavior when length==0 (default value) but also allow other lengths (not null terminated) to be created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28552 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a note about integer multiplication by constants.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28551 91177308-0d34-0410-b5e6-96231b3b80d8
* A addressing mode folding enhancement:Evan Cheng2006-05-30
| | | | | | | | | | | | | | Fold c2 in (x << c1) | c2 where (c2 < c1) e.g. int test(int x) { return (x << 3) + 7; } This can be codegen'd as: leal 7(,%eax,8), %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28550 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a lea instruction selection test case.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28549 91177308-0d34-0410-b5e6-96231b3b80d8
* Some new entries about truncate / anyextEvan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28548 91177308-0d34-0410-b5e6-96231b3b80d8
* First complete version of llvm2cpp that doesn't crash on any of the FeatureReid Spencer2006-05-30
| | | | | | | tests. The output in a few cases still doesn't compile, however. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28547 91177308-0d34-0410-b5e6-96231b3b80d8
* move calltarget to dsaAndrew Lenharth2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28546 91177308-0d34-0410-b5e6-96231b3b80d8
* Since there was interest on the mailing list, this is a utility pass thatAndrew Lenharth2006-05-29
| | | | | | | | | uses DSA to make find targets of calls. It provides a very convinient interface to DSA results to do things with indirect calls, such as write a devirtualizer (which I have and may commit one of these days). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28545 91177308-0d34-0410-b5e6-96231b3b80d8
* Silly cleanupChris Lattner2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28544 91177308-0d34-0410-b5e6-96231b3b80d8
* silly cleanupChris Lattner2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28543 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug with diffing the wrong files. Make output more readable.Reid Spencer2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28542 91177308-0d34-0410-b5e6-96231b3b80d8
* Next batch of implementation:Reid Spencer2006-05-29
| | | | | | | | | | | 1. Get rid of old AsmWriter cruft that's not needed. 2. Implement several instructions. Enough to get by globalvars.ll and alignment.ll in the Feature test suite. 3. Handle constants properly (don't repeat definitions). 4. Make the output compatible with llvm-dis for diff purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28541 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix file header comment.Reid Spencer2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28540 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove temporary testing rules.Reid Spencer2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28539 91177308-0d34-0410-b5e6-96231b3b80d8
* Reset DEBUG_SYMBOL_TABLE back to 0.Vladimir Prus2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28538 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix compile error when DEBUG_SYMBOL_TABLE is defined.Vladimir Prus2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28537 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix two bugs in the CppWriter.cpp:Reid Spencer2006-05-29
| | | | | | | | 1. Return the module from the MakeModule function so it can be verified. 2. Make sure types get generated with their names git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28536 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the file's comment block.Reid Spencer2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28535 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix grammar in a comment.Reid Spencer2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28534 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace an old C-style cast with a C++ cast (squelch warning)Reid Spencer2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28533 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct some grammar and describe current reality.Reid Spencer2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28532 91177308-0d34-0410-b5e6-96231b3b80d8
* Require both tests to pass.Owen Anderson2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28531 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the testcase to check the full extent of LCSSA.Owen Anderson2006-05-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28530 91177308-0d34-0410-b5e6-96231b3b80d8
* Add Use replacement. Assuming there is nothing horribly wrong with this, LCSSAOwen Anderson2006-05-29
| | | | | | | | is now theoretically feature-complete. It has not, however, been thoroughly test, and is still considered experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28529 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial Commit of llvm2cppReid Spencer2006-05-29
| | | | | | | | | This is a safekeeping commit. The program is not finished. It currently handles modules, types, global variables and function declarations. Blocks and instructions remain to be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28528 91177308-0d34-0410-b5e6-96231b3b80d8
* Major think-o. Iterate over all live out-of-loop values, and perform theOwen Anderson2006-05-28
| | | | | | | | other calculations on each individually, rather than trying to delay it and do them all at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28527 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a problem where dejagnu won't accept the value of global tcl variableReid Spencer2006-05-28
| | | | | | | "libdir" for some reason. Changing to llvmlibsdir instead fixes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28526 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide an infrastructure for testing the llvm2cpp program (yet to beReid Spencer2006-05-28
| | | | | | | | | committed). This infrastructure is only activated when RUNLLVM2CPP=1 is specified on the make command line. Currently it is only supported in the Feature test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28525 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LCSSA insert proper Phi nodes throughout the rest of the CFG by computingOwen Anderson2006-05-27
| | | | | | | | | the iterated Dominance Frontier of the loop-closure Phi's. This is the second phase of the LCSSA pass. The third phase (coming soon) will be to update all uses of loop variables to use the loop-closure Phi's instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28524 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some regression from the inliner patch I committed last night. This fixesChris Lattner2006-05-27
| | | | | | | ldecod, lencod, and SPASS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28523 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix pastos in commentsChris Lattner2006-05-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28522 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch the inliner over to using CloneAndPruneFunctionInto. This effectivelyChris Lattner2006-05-27
| | | | | | | | | | | | | | | | | | | | | | | | makes it so that it constant folds instructions on the fly. This is good for several reasons: 0. Many instructions are constant foldable after inlining, particularly if inlining a call with constant arguments. 1. Without this, the inliner has to allocate memory for all of the instructions that can be constant folded, then a subsequent pass has to delete them. This gets the job done without this extra work. 2. This makes the inliner *pass* a bit more aggressive: in particular, it partially solves a phase order issue where the inliner would inline lots of code that folds away to nothing, but think that the resultant function is big because of this code that will be gone. Now the code never exists. This is the first part of a 2-step process. The second part will be smart enough to see when this implicit constant folding propagates a constant into a branch or switch instruction, making CFG edges dead. This implements Transforms/Inline/inline_constprop.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28521 91177308-0d34-0410-b5e6-96231b3b80d8
* Ignore generated filesChris Lattner2006-05-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28520 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a new method, CloneAndPruneFunctionInto, as documented.Chris Lattner2006-05-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28519 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a new method: CloneAndPruneFunctionInto, as documented.Chris Lattner2006-05-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28518 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor some code to expose an interface to constant fold and instruction ↵Chris Lattner2006-05-27
| | | | | | given it's opcode, typeand operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28517 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an interface to constant fold and instruction given it's opcode, typeChris Lattner2006-05-27
| | | | | | | and operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28516 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase: check that the inliner constant folds instructions on theChris Lattner2006-05-27
| | | | | | | fly if it can. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28515 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!):Chris Lattner2006-05-27
| | | | | | | | | | | | | | | | | | | SimplifySelectOps would eliminate a Select, delete it, then return true. The clients would see that it did something and return null. The top level would see a null return, and decide that nothing happened, proceeding to process the node in other ways: boom. The fix is simple: clients of SimplifySelectOps should return the select node itself. In order to catch really obnoxious boogs like this in the future, add an assert that nodes are not deleted. We do this by checking for a sentry node type that the SDNode dtor sets when a node is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28514 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new sentry node type, allowing assertions to catch trivialChris Lattner2006-05-27
| | | | | | | use-after-deleted errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28513 91177308-0d34-0410-b5e6-96231b3b80d8
* A few small clean-ups, and the addition of an LCSSA statistic.Owen Anderson2006-05-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28512 91177308-0d34-0410-b5e6-96231b3b80d8
* Make CALL node consistent with RET node. Signness of value has type MVT::i32Evan Cheng2006-05-26
| | | | | | | | instead of MVT::i1. Either is fine except MVT::i32 is probably a legal type for most (if not all) platforms while MVT::i1 is not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28511 91177308-0d34-0410-b5e6-96231b3b80d8