summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
* Use archive libraries instead of object files for VMCore, BCReader,Reid Spencer2006-06-01
| | | | | | | | BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate these changes. This was done to speed up link times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28610 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a warningEvan Cheng2006-06-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28607 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename ASM modifier trunc8, trunc16 to subreg8, subreg16.Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28606 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix casting so there's no warning on Alpha.Reid Spencer2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28605 91177308-0d34-0410-b5e6-96231b3b80d8
* Sign extenderEvan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28603 91177308-0d34-0410-b5e6-96231b3b80d8
* Squelch this warning:Reid Spencer2006-05-31
| | | | | | | | /bzlib.c:126: warning: string length `1056' is greater than the length `509' ISO C89 compilers are required to support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28602 91177308-0d34-0410-b5e6-96231b3b80d8
* Swap the order of operands created here. For +&|^, the order doesn't matter,Chris Lattner2006-05-31
| | | | | | | | but for sub, it really does! Fix fixes a miscompilation of fibheap_cut in llvmgcc4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28600 91177308-0d34-0410-b5e6-96231b3b80d8
* Extract a huge loop into a helper method. Fix a few iterator-invalidation bugs.Owen Anderson2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28599 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename instructions for consistency sake.Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28594 91177308-0d34-0410-b5e6-96231b3b80d8
* commuteInstruction() does not always create a new MI!Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28592 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the getNamedFunction and getNamedGlobal methods be const. They don'tReid Spencer2006-05-31
| | | | | | | change the module in any way and we should enforce that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28588 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate a memory leak.Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28585 91177308-0d34-0410-b5e6-96231b3b80d8
* visitVBinOp: Can't fold divide by zero!Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28584 91177308-0d34-0410-b5e6-96231b3b80d8
* Select vector_shuffle v1, undef <2, 3, ?, ?> to MOVHLPS.Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28582 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28581 91177308-0d34-0410-b5e6-96231b3b80d8
* A new entryEvan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28579 91177308-0d34-0410-b5e6-96231b3b80d8
* MAXP{D|S} and MINP{D|S} are commutable.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28578 91177308-0d34-0410-b5e6-96231b3b80d8
* Commute shufps / shufpd.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28577 91177308-0d34-0410-b5e6-96231b3b80d8
* Somehow I lost a condition when I was shuffling some code around. Anyway,Evan Cheng2006-05-30
| | | | | | | only transform a shufps to pshufd when the first two operands are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28575 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a build breaker.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28574 91177308-0d34-0410-b5e6-96231b3b80d8
* Oops. PSHUFD is only available with SSE2.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28573 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a noteChris Lattner2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28572 91177308-0d34-0410-b5e6-96231b3b80d8
* Always reserve space for 8 spilled GPRs. GCC apparently assumes that thisChris Lattner2006-05-30
| | | | | | | space will be available, even if the callee isn't varargs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28571 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow shufps x, x, mask to be converted to pshufd x, mask to save a move.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28565 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove bogus comment.Evan Cheng2006-05-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28564 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide a simpler interface for getting a ConstantArray from a characterReid Spencer2006-05-30
| | | | | | | | | string. Instead of specifying the length, just specify whether the user wants a terminating null or not. The default is "true" to retain the same behavior as previously provided by this function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28562 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure the register pressure reduction schedulers work for non-uniformEvan Cheng2006-05-30
| | | | | | | latency targets, e.g. PPC32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28561 91177308-0d34-0410-b5e6-96231b3b80d8
* 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
* 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
* 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
* 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
* 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
* 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 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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