Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Take the old function's name. | Zhou Sheng | 2008-03-20 | 1 | -0/+1 |
| | | | | llvm-svn: 48588 | ||||
* | 80 col violation. | Evan Cheng | 2008-03-20 | 1 | -1/+2 |
| | | | | llvm-svn: 48573 | ||||
* | Add comment. | Devang Patel | 2008-03-19 | 1 | -0/+4 |
| | | | | llvm-svn: 48567 | ||||
* | Remove dead options. | Evan Cheng | 2008-03-19 | 2 | -20/+4 |
| | | | | llvm-svn: 48556 | ||||
* | Update heuritics that estimates cost of call instructions. | Devang Patel | 2008-03-17 | 1 | -0/+5 |
| | | | | llvm-svn: 48474 | ||||
* | C and Objective Caml bindings for several scalar transforms. | Gordon Henriksen | 2008-03-16 | 1 | -0/+39 |
| | | | | | | Patch originally by Erick Tryzelaar, but has been modified somewhat. llvm-svn: 48419 | ||||
* | The inst combining of inttoptr into GEP with one index was using the bit size of | Bill Wendling | 2008-03-14 | 1 | -1/+1 |
| | | | | | | | | the type instead of the byte size. This was causing troublesome mis-compilations. True to form, this took 2 days to find and is a one-line fix. :-P llvm-svn: 48354 | ||||
* | Fix a bug in GVN that Duncan noticed, where we potentially need to insert a | Owen Anderson | 2008-03-13 | 1 | -1/+5 |
| | | | | | | pointer bitcast when performing return slot optimization. llvm-svn: 48343 | ||||
* | Update -mem2reg to use succ_iterator instead of iterating across TerminatorInst | Nick Lewycky | 2008-03-13 | 1 | -13/+10 |
| | | | | | | successors. This makes it support nounwind. llvm-svn: 48320 | ||||
* | Reimplement the parameter attributes support, phase #1. hilights: | Chris Lattner | 2008-03-12 | 6 | -126/+91 |
| | | | | | | | | | | | | | | | | | | | | | | | 1. There is now a "PAListPtr" class, which is a smart pointer around the underlying uniqued parameter attribute list object, and manages its refcount. It is now impossible to mess up the refcount. 2. PAListPtr is now the main interface to the underlying object, and the underlying object is now completely opaque. 3. Implementation details like SmallVector and FoldingSet are now no longer part of the interface. 4. You can create a PAListPtr with an arbitrary sequence of ParamAttrsWithIndex's, no need to make a SmallVector of a specific size (you can just use an array or scalar or vector if you wish). 5. All the client code that had to check for a null pointer before dereferencing the pointer is simplified to just access the PAListPtr directly. 6. The interfaces for adding attrs to a list and removing them is a bit simpler. Phase #2 will rename some stuff (e.g. PAListPtr) and do other less invasive changes. llvm-svn: 48289 | ||||
* | Improve the return slot optimization to be both more aggressive (not limited ↵ | Owen Anderson | 2008-03-12 | 1 | -93/+109 |
| | | | | | | | | | to sret parameters), and safer (when the passed pointer might be invalid). Thanks to Duncan and Chris for the idea behind this, and extra thanks to Duncan for helping me work out the trap-safety. llvm-svn: 48280 | ||||
* | Check multiple return values. | Devang Patel | 2008-03-12 | 1 | -1/+2 |
| | | | | llvm-svn: 48267 | ||||
* | Fix attribute handling. | Devang Patel | 2008-03-12 | 1 | -14/+14 |
| | | | | llvm-svn: 48262 | ||||
* | Handle multiple ret values. | Devang Patel | 2008-03-11 | 1 | -21/+59 |
| | | | | llvm-svn: 48254 | ||||
* | Initialize. | Devang Patel | 2008-03-11 | 1 | -2/+2 |
| | | | | llvm-svn: 48253 | ||||
* | Check to see if a two-entry PHI block can be simplified | Dan Gohman | 2008-03-11 | 1 | -6/+6 |
| | | | | | | | | before trying to merge the block into its predecessors. This allows two-entry-phi-return.ll to be simplified into a single basic block. llvm-svn: 48252 | ||||
* | Skip functions that return multiple values. | Devang Patel | 2008-03-11 | 1 | -0/+3 |
| | | | | llvm-svn: 48233 | ||||
* | Become multiple return value aware. | Devang Patel | 2008-03-11 | 1 | -1/+5 |
| | | | | | | | Right now, the pass does not optimize tail recursions involving multiple return values. llvm-svn: 48228 | ||||
* | Add TODO reminder. | Devang Patel | 2008-03-11 | 1 | -0/+1 |
| | | | | llvm-svn: 48227 | ||||
* | Initial multiple return values support. | Devang Patel | 2008-03-11 | 1 | -19/+95 |
| | | | | llvm-svn: 48210 | ||||
* | Restore optimization that merges blocks when inline function | Devang Patel | 2008-03-10 | 1 | -6/+24 |
| | | | | | | has single return value. llvm-svn: 48162 | ||||
* | Simplify | Devang Patel | 2008-03-10 | 1 | -18/+15 |
| | | | | llvm-svn: 48161 | ||||
* | simplify | Devang Patel | 2008-03-10 | 1 | -2/+4 |
| | | | | llvm-svn: 48160 | ||||
* | Turn unwind_to into "unwinds to". | Nick Lewycky | 2008-03-10 | 4 | -4/+4 |
| | | | | llvm-svn: 48123 | ||||
* | Fix some compilation errors on msvc: | Ted Kremenek | 2008-03-09 | 1 | -0/+1 |
| | | | | | | | | | - "Redefinition of I" (iterator masks previous definition) - include missing header file Patch by Argiris Kirtzidis! llvm-svn: 48115 | ||||
* | And again. | Nick Lewycky | 2008-03-09 | 1 | -1/+2 |
| | | | | llvm-svn: 48112 | ||||
* | Braces belong here. No functionality change. | Nick Lewycky | 2008-03-09 | 1 | -1/+2 |
| | | | | llvm-svn: 48111 | ||||
* | SCCP also needs to be taught to follow unwind_to | Nick Lewycky | 2008-03-09 | 1 | -0/+4 |
| | | | | llvm-svn: 48109 | ||||
* | Don't eliminate blocks that are only reachable by unwind_to. | Nick Lewycky | 2008-03-09 | 1 | -2/+8 |
| | | | | llvm-svn: 48106 | ||||
* | Firstly, having a BranchInst isn't exclusive with having an unwind_to. | Nick Lewycky | 2008-03-09 | 1 | -5/+8 |
| | | | | | | | Secondly, we have to check whether the branch is actually pointing to the block with the unwind in it. We could have gotten here because of the unwind_to alone. llvm-svn: 48099 | ||||
* | A BB that unwind_to an "unwind" inst is that same as one that doesn't unwind_to | Nick Lewycky | 2008-03-09 | 1 | -1/+4 |
| | | | | | | at all. llvm-svn: 48096 | ||||
* | Update the block cloner which fixes bugpoint on code using unwind_to (phew!) | Nick Lewycky | 2008-03-09 | 6 | -14/+43 |
| | | | | | | and also update the cloning interface's major user, the loop optimizations. llvm-svn: 48088 | ||||
* | Update the inliner and simplifycfg to handle unwind_to. | Nick Lewycky | 2008-03-09 | 2 | -1/+22 |
| | | | | llvm-svn: 48086 | ||||
* | Two things. Preserve the unwind_to when splitting a BB. | Nick Lewycky | 2008-03-09 | 1 | -0/+1 |
| | | | | | | | Add the ability to remove just one instance of a BB from a phi node. This fixes the compile error in the tree now. llvm-svn: 48085 | ||||
* | Prune the unwind_to labels on BBs that don't need them. Another step in the | Nick Lewycky | 2008-03-09 | 1 | -3/+16 |
| | | | | | | removal of invoke, PR1269. llvm-svn: 48084 | ||||
* | Not all users of a BB are Instructions any more. | Nick Lewycky | 2008-03-08 | 1 | -1/+6 |
| | | | | llvm-svn: 48047 | ||||
* | Update inliner to handle functions that return multiple values. | Devang Patel | 2008-03-07 | 1 | -43/+52 |
| | | | | llvm-svn: 48020 | ||||
* | add a pass that can extract all kinds of global values, not just functions. ↵ | Andrew Lenharth | 2008-03-07 | 1 | -0/+174 |
| | | | | | | Update llvm-extract to use it and optionally extract a global variable if you want it too llvm-svn: 48015 | ||||
* | fix typos | Gabor Greif | 2008-03-06 | 2 | -2/+2 |
| | | | | llvm-svn: 47994 | ||||
* | Don't try to simplify urem and srem using arithmetic rules that don't work | Nick Lewycky | 2008-03-06 | 1 | -43/+96 |
| | | | | | | under modulo (overflow). Fixes PR1933. llvm-svn: 47987 | ||||
* | Skip, for now, callsites where use of sret argument is not dominated by ↵ | Devang Patel | 2008-03-05 | 1 | -0/+4 |
| | | | | | | callsite. llvm-svn: 47980 | ||||
* | Handle 'ret' with multiple values. | Devang Patel | 2008-03-05 | 1 | -11/+23 |
| | | | | llvm-svn: 47965 | ||||
* | Skip functions that return multiple values. | Devang Patel | 2008-03-05 | 1 | -0/+5 |
| | | | | llvm-svn: 47924 | ||||
* | Use while loop. | Devang Patel | 2008-03-04 | 1 | -3/+2 |
| | | | | llvm-svn: 47909 | ||||
* | Use cast instead of dyn_cast. | Devang Patel | 2008-03-04 | 1 | -2/+1 |
| | | | | | | Update test to use multiple return value directly, instead of relying on -sretpromotion. llvm-svn: 47907 | ||||
* | Filter nested structs | Devang Patel | 2008-03-04 | 1 | -0/+16 |
| | | | | llvm-svn: 47906 | ||||
* | Handle multiple return values. | Devang Patel | 2008-03-04 | 1 | -3/+15 |
| | | | | llvm-svn: 47904 | ||||
* | Use appropriate index to get the result value. | Devang Patel | 2008-03-04 | 1 | -1/+3 |
| | | | | llvm-svn: 47897 | ||||
* | Skip sret attribute while preparing attribute list for | Devang Patel | 2008-03-04 | 1 | -11/+21 |
| | | | | | | new function and new call sites. llvm-svn: 47896 | ||||
* | Increment counter that keeps track of total number of sret promoted. | Devang Patel | 2008-03-04 | 1 | -0/+1 |
| | | | | llvm-svn: 47892 |