summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
...
* simplifyDevang Patel2008-03-101-2/+4
| | | | llvm-svn: 48160
* Turn unwind_to into "unwinds to".Nick Lewycky2008-03-104-4/+4
| | | | llvm-svn: 48123
* Fix some compilation errors on msvc:Ted Kremenek2008-03-091-0/+1
| | | | | | | | | - "Redefinition of I" (iterator masks previous definition) - include missing header file Patch by Argiris Kirtzidis! llvm-svn: 48115
* And again.Nick Lewycky2008-03-091-1/+2
| | | | llvm-svn: 48112
* Braces belong here. No functionality change.Nick Lewycky2008-03-091-1/+2
| | | | llvm-svn: 48111
* SCCP also needs to be taught to follow unwind_toNick Lewycky2008-03-091-0/+4
| | | | llvm-svn: 48109
* Don't eliminate blocks that are only reachable by unwind_to.Nick Lewycky2008-03-091-2/+8
| | | | llvm-svn: 48106
* Firstly, having a BranchInst isn't exclusive with having an unwind_to.Nick Lewycky2008-03-091-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_toNick Lewycky2008-03-091-1/+4
| | | | | | at all. llvm-svn: 48096
* Update the block cloner which fixes bugpoint on code using unwind_to (phew!)Nick Lewycky2008-03-096-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 Lewycky2008-03-092-1/+22
| | | | llvm-svn: 48086
* Two things. Preserve the unwind_to when splitting a BB.Nick Lewycky2008-03-091-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 theNick Lewycky2008-03-091-3/+16
| | | | | | removal of invoke, PR1269. llvm-svn: 48084
* Not all users of a BB are Instructions any more.Nick Lewycky2008-03-081-1/+6
| | | | llvm-svn: 48047
* Update inliner to handle functions that return multiple values.Devang Patel2008-03-071-43/+52
| | | | llvm-svn: 48020
* add a pass that can extract all kinds of global values, not just functions. ↵Andrew Lenharth2008-03-071-0/+174
| | | | | | Update llvm-extract to use it and optionally extract a global variable if you want it too llvm-svn: 48015
* fix typosGabor Greif2008-03-062-2/+2
| | | | llvm-svn: 47994
* Don't try to simplify urem and srem using arithmetic rules that don't workNick Lewycky2008-03-061-43/+96
| | | | | | under modulo (overflow). Fixes PR1933. llvm-svn: 47987
* Skip, for now, callsites where use of sret argument is not dominated by ↵Devang Patel2008-03-051-0/+4
| | | | | | callsite. llvm-svn: 47980
* Handle 'ret' with multiple values.Devang Patel2008-03-051-11/+23
| | | | llvm-svn: 47965
* Skip functions that return multiple values.Devang Patel2008-03-051-0/+5
| | | | llvm-svn: 47924
* Use while loop.Devang Patel2008-03-041-3/+2
| | | | llvm-svn: 47909
* Use cast instead of dyn_cast.Devang Patel2008-03-041-2/+1
| | | | | | Update test to use multiple return value directly, instead of relying on -sretpromotion. llvm-svn: 47907
* Filter nested structsDevang Patel2008-03-041-0/+16
| | | | llvm-svn: 47906
* Handle multiple return values.Devang Patel2008-03-041-3/+15
| | | | llvm-svn: 47904
* Use appropriate index to get the result value.Devang Patel2008-03-041-1/+3
| | | | llvm-svn: 47897
* Skip sret attribute while preparing attribute list forDevang Patel2008-03-041-11/+21
| | | | | | new function and new call sites. llvm-svn: 47896
* Increment counter that keeps track of total number of sret promoted.Devang Patel2008-03-041-0/+1
| | | | llvm-svn: 47892
* Skip declarations.Devang Patel2008-03-041-1/+1
| | | | llvm-svn: 47890
* Process externally visible functions also. Later on code generator will do ↵Devang Patel2008-03-041-2/+1
| | | | | | the right thing. llvm-svn: 47889
* Collect statistics.Devang Patel2008-03-041-5/+11
| | | | llvm-svn: 47888
* s/isReturnStruct()/hasStructRetAttr()/gDevang Patel2008-03-032-2/+2
| | | | llvm-svn: 47857
* Preserve paramater attributes.Devang Patel2008-03-031-2/+31
| | | | llvm-svn: 47847
* allow specified inline threshold to be negative, as the value is Chris Lattner2008-03-011-1/+1
| | | | | | itself sometimes negative. llvm-svn: 47786
* Fix cut-n-pasto.Devang Patel2008-02-291-19/+1
| | | | llvm-svn: 47777
* Add pass to promote sret.Devang Patel2008-02-291-0/+292
| | | | | | | | | | | | | | | | | | | This pass transforms %struct._Point = type { i32, i32, i32, i32, i32, i32 } define internal void @foo(%struct._Point* sret %agg.result) into %struct._Point = type { i32, i32, i32, i32, i32, i32 } define internal %struct._Point @foo() This pass updates foo() clients appropriately to use getresult instruction to extract return values. This pass is not yet ready for prime time. llvm-svn: 47776
* fix a bug Anders ran into where scalarrepl would crash when promotingChris Lattner2008-02-291-57/+68
| | | | | | | | a union containing a vector and an array whose elements were smaller than the vector elements. this means we need to compile the load of the array elements into an extract element plus a truncate. llvm-svn: 47752
* Refactor some code out of ConvertUsesToScalar into their own methods, noChris Lattner2008-02-291-148/+190
| | | | | | functionality change. llvm-svn: 47751
* Folding or(fcmp,fcmp) only works if the operands of the fcmps are the same ↵Chris Lattner2008-02-291-1/+2
| | | | | | fp type. llvm-svn: 47750
* Fix an issue where GVN had the sizes of the two memcpy's reverse, resultingOwen Anderson2008-02-261-2/+2
| | | | | | in an invalid transformation. llvm-svn: 47639
* fix http://llvm.org/bugs/show_bug.cgi?id=2097Gabor Greif2008-02-261-1/+1
| | | | llvm-svn: 47615
* Fix for pr2093: direct operands aren't necessarily addresses, so don't Eli Friedman2008-02-261-1/+2
| | | | | | try to simplify them. llvm-svn: 47610
* De-tabify.Bill Wendling2008-02-262-24/+24
| | | | llvm-svn: 47599
* Fix PR2076. CodeGenPrepare now sinks address computation for inline asm memoryEvan Cheng2008-02-261-0/+55
| | | | | | operands into inline asm block. llvm-svn: 47589
* Fix an issue where GVN was performing the return slot optimization when it wasOwen Anderson2008-02-251-8/+26
| | | | | | | not safe. This is fixed by more aggressively checking that the return slot is not used elsewhere in the function. llvm-svn: 47544
* Fix an issue where GVN would try to use an instruction before its definition ↵Owen Anderson2008-02-251-0/+7
| | | | | | when performing return slot optimization. llvm-svn: 47541
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-225-5/+5
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Fixed a typo.Zhou Sheng2008-02-221-1/+1
| | | | llvm-svn: 47478
* Add explicit keywords.Dan Gohman2008-02-201-1/+1
| | | | llvm-svn: 47382
* Fix newly-introduced 4.3 warningsAnton Korobeynikov2008-02-202-3/+3
| | | | llvm-svn: 47375
OpenPOWER on IntegriCloud