summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils
Commit message (Collapse)AuthorAgeFilesLines
...
* Initial automake generated Makefile templateReid Spencer2004-10-181-0/+692
| | | | llvm-svn: 17136
* Correction to allow compilation with Visual C++.Reid Spencer2004-10-181-2/+2
| | | | | | Patch contributed by Morten Ofstad. Thanks Morten! llvm-svn: 17123
* Simplify code by deleting instructions that preceed unreachable instructions.Chris Lattner2004-10-181-1/+101
| | | | | | | Simplify code by simplifying terminators that branch to blocks that start with an unreachable instruction. llvm-svn: 17116
* Fix a bug that occurs when the constant value is the result of an invoke. InChris Lattner2004-10-181-5/+6
| | | | | | | particular, invoke ret values are only live in the normal dest of the invoke not in the unwind dest. llvm-svn: 17108
* Fix Regression/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.llChris Lattner2004-10-171-4/+8
| | | | | | | If a function had no return instruction in it, and the result of the inlined call instruction was used, we would crash. llvm-svn: 17104
* When inserting PHI nodes, don't insert any phi nodes that are obviouslyChris Lattner2004-10-171-10/+31
| | | | | | | | | unneccesary. This allows us to delete several hundred phi nodes of the form PHI(x,x,x,undef) from 253.perlbmk and probably other programs as well. This implements Mem2Reg/UndefValuesMerge.ll llvm-svn: 17098
* Enhance hasConstantValue to ignore undef values in phi nodes. This allows itChris Lattner2004-10-171-2/+3
| | | | | | to think that PHI[4, undef] == 4. llvm-svn: 17096
* Add support for unreachableChris Lattner2004-10-161-3/+23
| | | | llvm-svn: 17056
* Add support for UndefValueChris Lattner2004-10-161-1/+2
| | | | llvm-svn: 17046
* When promoting mem2reg, make uninitialized values become undef isntead of 0.Chris Lattner2004-10-161-9/+9
| | | | llvm-svn: 17045
* When converting phi nodes into select instructions, we shouldn't promote PHIChris Lattner2004-10-141-41/+93
| | | | | | | | nodes unless we KNOW that we are able to promote all of them. This fixes: test/Regression/Transforms/SimplifyCFG/PhiNoEliminate.ll llvm-svn: 16973
* Update to reflect changes in Makefile rules.Reid Spencer2004-10-131-4/+3
| | | | llvm-svn: 16950
* Initial version of automake Makefile.am file.Reid Spencer2004-10-101-0/+32
| | | | llvm-svn: 16893
* Do not insert trivially dead select instructions, which allows us toChris Lattner2004-09-291-2/+11
| | | | | | potentially fold more in one pass. llvm-svn: 16583
* Remove a whole bunch of horrible hacky code that was used to promote allocasChris Lattner2004-09-191-145/+7
| | | | | | | | | whose addresses where used by trivial phi nodes and select instructions. This is now performed by the instcombine pass, which is more powerful, is much simpler, and is faster. This allows the deletion of a bunch of code, two FIXME's and two gotos. llvm-svn: 16406
* Make sure to remove the Select instruction as wellChris Lattner2004-09-181-0/+1
| | | | llvm-svn: 16389
* Convert code to compile with vc7.1.Reid Spencer2004-09-155-31/+41
| | | | | | Patch contributed by Paolo Invernizzi. Thanks Paolo! llvm-svn: 16368
* If given an AliasSetTracker object to update, update it.Chris Lattner2004-09-151-20/+81
| | | | llvm-svn: 16347
* Fixes to make LLVM compile with vc7.1.Alkis Evlogimenos2004-09-032-1/+2
| | | | | | Patch contributed by Paolo Invernizzi! llvm-svn: 16152
* Changes For Bug 352Reid Spencer2004-09-015-7/+7
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* If we are extracting a block that has multiple successors that are the sameChris Lattner2004-08-131-2/+11
| | | | | | | | | block (common in a switch), make sure to remove extra edges in successor blocks. This fixes CodeExtractor/2004-08-12-BlockExtractPHI.ll and should be pulled into LLVM 1.3 (though the regression test need not be, as that would require pulling in the LoopExtract.cpp changes). llvm-svn: 15717
* When we code extract some stuff, leave the codeRepl block in the place whereChris Lattner2004-08-131-1/+1
| | | | | | the extracted code was, instead of putting it at the end of the function llvm-svn: 15716
* Add value mapper support for select constant exprs. This should fix a bugChris Lattner2004-08-131-0/+5
| | | | | | Nate ran into when bugpointing siod. This fix should go into LLVM 1.3 llvm-svn: 15712
* Fix code extraction of unwind blocks. This fixed bugs that bugpoint canChris Lattner2004-08-121-9/+12
| | | | | | run into. This should go into 1.3 llvm-svn: 15679
* Stop using getValues().Alkis Evlogimenos2004-08-041-14/+12
| | | | llvm-svn: 15487
* Expose this as a functionpassChris Lattner2004-07-311-1/+3
| | | | llvm-svn: 15369
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-291-1/+0
| | | | llvm-svn: 15337
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-295-7/+5
| | | | llvm-svn: 15334
* Merge i*.h headers into Instructions.h as part of bug403.Alkis Evlogimenos2004-07-291-2/+1
| | | | llvm-svn: 15325
* These files don't need to include <iostream> since they include ↵Brian Gaeke2004-07-212-2/+0
| | | | | | "Support/Debug.h". llvm-svn: 15089
* Fix a serious code pessimization problem. If an inlined function has a singleChris Lattner2004-07-201-5/+6
| | | | | | | return, clone the 'ret' BB code into the block AFTER the inlined call, not the other way around. llvm-svn: 15030
* Implement SimplifyCFG/BrUnwind.llChris Lattner2004-07-201-2/+9
| | | | llvm-svn: 15022
* Remove an if statement that would never be reached.Reid Spencer2004-07-181-3/+1
| | | | llvm-svn: 14968
* bug 122:Reid Spencer2004-07-181-3/+3
| | | | | | - Replace ConstantPointerRef usage with GlobalValue usage llvm-svn: 14953
* bug 122:Reid Spencer2004-07-181-2/+1
| | | | | | - Minimize redundant isa<GlobalValue> usage llvm-svn: 14948
* Progress on PR341Chris Lattner2004-07-153-9/+9
| | | | llvm-svn: 14840
* Add #include <iostream> since Value.h does not #include it any more.Reid Spencer2004-07-043-0/+5
| | | | llvm-svn: 14622
* Moved to lib/VMCoreMisha Brukman2004-06-231-927/+0
| | | | llvm-svn: 14348
* Use new IsNAN() wrapper.Brian Gaeke2004-06-231-15/+2
| | | | llvm-svn: 14340
* *FINALLY* Fix a really nasty nondeterministic bug that has been haunting usChris Lattner2004-06-211-6/+7
| | | | | | | | | | | since May 1st. In this code, the pred iterator was being invalidated sometimes causing the wrong entries to be added to PHI nodes. The fix for this is to defererence and safe the *PI value before we hack on branch instructions, which changes use/def chains, which SOMETIMES invalidates the iterator. llvm-svn: 14278
* Comment out the isnan stuff until we get a proper autoconf test for itChris Lattner2004-06-211-1/+7
| | | | | | breaking the build on sparc is not acceptable. llvm-svn: 14277
* Add some DEBUG output to the simplifycfg routinesChris Lattner2004-06-201-14/+13
| | | | | | | Fix another non-deterministic behavior, this one should actually speed up the code though as it was doing silly things. llvm-svn: 14258
* Change to use the StableBasicBlockNumbering classChris Lattner2004-06-191-15/+7
| | | | llvm-svn: 14247
* Do not let the numbering of PHI nodes placed in the function depend onChris Lattner2004-06-191-2/+36
| | | | | | | | | | | | | | | | | | | non-deterministic things like the ordering of blocks in the dominance frontier of a BB. Unfortunately, I don't know of a better way to solve this problem than to explicitly sort the BB's in function-order before processing them. This is guaranteed to slow the pass down a bit, but is absolutely necessary to get usable diffs between two different tools executing the mem2reg or scalarrepl pass. Before this, bazillions of spurious diff failures occurred all over the place due to the different order of processing PHIs: - %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.0, uint 0, uint 0 + %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.1, uint 0, uint 0 Now, the diffs match. llvm-svn: 14244
* Do not sort by the address of LLVM ConstantInt* objects. This producesChris Lattner2004-06-191-10/+21
| | | | | | | | | | | | | | | | | | | | | | nondeterministic results that depend on where these objects land in memory. Instead, sort by the value of the constant, which is stable. Before this patch, the -simplifycfg pass run from two different compilers could cause different code to be generated, though it was semantically the same: @@ -12258,8 +12258,8 @@ %s_addr.1 = phi sbyte* [ %s, %entry ], [ %inc.0, %no_exit ] ; <sbyte*> [#uses=5] %tmp.1 = load sbyte* %s_addr.1 ; <sbyte> [#uses=1] switch sbyte %tmp.1, label %no_exit [ - sbyte 0, label %loopexit sbyte 46, label %loopexit + sbyte 0, label %loopexit ] We need to stomp all of this stuff out. llvm-svn: 14243
* I love the smell of a freshly broken PowerPC build in the morning.Brian Gaeke2004-06-171-0/+1
| | | | llvm-svn: 14206
* Fix compilation problem on freebsd. Problem noted by Vladimir Merzliakov inChris Lattner2004-06-171-1/+1
| | | | | | PR371 llvm-svn: 14203
* Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner2004-06-171-2/+2
| | | | llvm-svn: 14201
* Um, did someone make a typo or something?Brian Gaeke2004-06-151-1/+1
| | | | llvm-svn: 14192
* Remove support for the isnan intrinsicChris Lattner2004-06-151-3/+0
| | | | llvm-svn: 14186
OpenPOWER on IntegriCloud