summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix a build breaker.Evan Cheng2006-05-304-15/+19
| | | | llvm-svn: 28574
* Oops. PSHUFD is only available with SSE2.Evan Cheng2006-05-301-5/+8
| | | | llvm-svn: 28573
* Add a noteChris Lattner2006-05-301-0/+19
| | | | llvm-svn: 28572
* Always reserve space for 8 spilled GPRs. GCC apparently assumes that thisChris Lattner2006-05-301-12/+7
| | | | | | space will be available, even if the callee isn't varargs. llvm-svn: 28571
* Allow shufps x, x, mask to be converted to pshufd x, mask to save a move.Evan Cheng2006-05-302-1/+13
| | | | llvm-svn: 28565
* Remove bogus comment.Evan Cheng2006-05-301-1/+0
| | | | llvm-svn: 28564
* Provide a simpler interface for getting a ConstantArray from a characterReid Spencer2006-05-301-8/+4
| | | | | | | | 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. llvm-svn: 28562
* Make sure the register pressure reduction schedulers work for non-uniformEvan Cheng2006-05-301-12/+14
| | | | | | latency targets, e.g. PPC32. llvm-svn: 28561
* When a priority_queue is empty, the behavior of top() operator isEvan Cheng2006-05-301-0/+1
| | | | | | non-deterministic. Returns NULL when it's empty! llvm-svn: 28560
* Expand ret into "CopyToReg;BRIND"Rafael Espindola2006-05-302-18/+4
| | | | llvm-svn: 28559
* Undo a patch that breaks llvm-as because the warning message is written toReid Spencer2006-05-301-1/+1
| | | | | | | stdout when the output of llvm-as is also written to stdout. We'll have to fix tcl some other way. llvm-svn: 28557
* Write the WARNING message to cout instead of cerr. Writing to cerr causesReid Spencer2006-05-301-1/+1
| | | | | | | Tcl to claim that the program had an error and thus produces errors in the dejagnu testing when its really just a warning. llvm-svn: 28556
* Adjust the interface to ConstantArray::get. The previousReid Spencer2006-05-301-8/+15
| | | | | | | | | 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. llvm-svn: 28552
* Add a note about integer multiplication by constants.Evan Cheng2006-05-301-0/+27
| | | | llvm-svn: 28551
* A addressing mode folding enhancement:Evan Cheng2006-05-302-1/+25
| | | | | | | | | | | | | 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 llvm-svn: 28550
* Some new entries about truncate / anyextEvan Cheng2006-05-301-0/+16
| | | | llvm-svn: 28548
* move calltarget to dsaAndrew Lenharth2006-05-291-0/+0
| | | | llvm-svn: 28546
* Since there was interest on the mailing list, this is a utility pass thatAndrew Lenharth2006-05-291-0/+125
| | | | | | | | 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). llvm-svn: 28545
* Reset DEBUG_SYMBOL_TABLE back to 0.Vladimir Prus2006-05-291-1/+1
| | | | llvm-svn: 28538
* Fix compile error when DEBUG_SYMBOL_TABLE is defined.Vladimir Prus2006-05-291-2/+2
| | | | llvm-svn: 28537
* Fix grammar in a comment.Reid Spencer2006-05-292-2/+2
| | | | llvm-svn: 28534
* Add Use replacement. Assuming there is nothing horribly wrong with this, LCSSAOwen Anderson2006-05-291-2/+35
| | | | | | | is now theoretically feature-complete. It has not, however, been thoroughly test, and is still considered experimental. llvm-svn: 28529
* Major think-o. Iterate over all live out-of-loop values, and perform theOwen Anderson2006-05-281-36/+36
| | | | | | | other calculations on each individually, rather than trying to delay it and do them all at the end. llvm-svn: 28527
* Make LCSSA insert proper Phi nodes throughout the rest of the CFG by computingOwen Anderson2006-05-271-8/+51
| | | | | | | | 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. llvm-svn: 28524
* Fix some regression from the inliner patch I committed last night. This fixesChris Lattner2006-05-271-1/+1
| | | | | | ldecod, lencod, and SPASS. llvm-svn: 28523
* Switch the inliner over to using CloneAndPruneFunctionInto. This effectivelyChris Lattner2006-05-271-5/+9
| | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 28521
* Ignore generated filesChris Lattner2006-05-271-0/+1
| | | | llvm-svn: 28520
* Implement a new method, CloneAndPruneFunctionInto, as documented.Chris Lattner2006-05-272-3/+189
| | | | llvm-svn: 28519
* Refactor some code to expose an interface to constant fold and instruction ↵Chris Lattner2006-05-271-35/+49
| | | | | | given it's opcode, typeand operands. llvm-svn: 28517
* Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!):Chris Lattner2006-05-271-4/+15
| | | | | | | | | | | | | | | | | | 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. llvm-svn: 28514
* A few small clean-ups, and the addition of an LCSSA statistic.Owen Anderson2006-05-271-2/+8
| | | | llvm-svn: 28512
* Make CALL node consistent with RET node. Signness of value has type MVT::i32Evan Cheng2006-05-261-5/+5
| | | | | | | 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. llvm-svn: 28511
* Change RET node to include signness information of the return values. i.e.Evan Cheng2006-05-266-13/+13
| | | | | | RET chain, value1, sign1, value2, sign2, ... llvm-svn: 28510
* Change RET node to include signness information of the return values. e.g.Evan Cheng2006-05-262-9/+17
| | | | | | RET chain, value1, sign1, value2, sign2 llvm-svn: 28509
* Fix a copy-and-paste-o that would break some compilers.Owen Anderson2006-05-261-1/+1
| | | | llvm-svn: 28507
* Clean up and refactor LCSSA a bunch. It should also run faster now, thoughOwen Anderson2006-05-261-66/+50
| | | | | | there's still a lot of work to be done on it. llvm-svn: 28506
* Vector argument must be passed in memory location aligned on 16-byte boundary.Evan Cheng2006-05-261-2/+18
| | | | llvm-svn: 28505
* Mac OS X ABI document lied. The first four XMM registers are used to passEvan Cheng2006-05-261-10/+12
| | | | | | vector arguments, not three. llvm-svn: 28504
* Implement Transforms/InstCombine/store.ll:test2.Chris Lattner2006-05-261-1/+15
| | | | llvm-svn: 28503
* Fix a bug in the bc reader/writer: we were not correctly encoding varargsChris Lattner2006-05-262-9/+19
| | | | | | | | | nonccc calls (we were dropping the CC and tail flag). This broke several FORTRAN programs. Testcase here: Regression/Assembler/2006-05-26-VarargsCallEncode.ll llvm-svn: 28501
* Minor update to make the code more clearEvan Cheng2006-05-261-2/+2
| | | | llvm-svn: 28499
* Update more comments.Evan Cheng2006-05-261-2/+2
| | | | llvm-svn: 28498
* Fix some comments.Evan Cheng2006-05-261-2/+2
| | | | llvm-svn: 28497
* No need to handle illegal types.Evan Cheng2006-05-261-4/+0
| | | | llvm-svn: 28496
* Skeletal LCSSA pass. This is currently non-functional. Expect functionalityOwen Anderson2006-05-261-0/+159
| | | | | | and documentation updates soo. llvm-svn: 28495
* On ARM, alignment is in bitsRafael Espindola2006-05-262-2/+7
| | | | | | Add lr as a hard coded operand of bx llvm-svn: 28494
* Remove a couple of bogus casts.Evan Cheng2006-05-262-2/+2
| | | | llvm-svn: 28493
* Remove a bogus cast.Evan Cheng2006-05-261-1/+1
| | | | llvm-svn: 28492
* Minor bug caught by Ashwin ChandraEvan Cheng2006-05-261-1/+1
| | | | llvm-svn: 28491
* Transform things like (splat(splat)) -> splatChris Lattner2006-05-261-4/+50
| | | | llvm-svn: 28490
OpenPOWER on IntegriCloud