summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a nasty dangling pointer issue. The ScalarEvolution pass would keep aChris Lattner2005-08-031-1/+3
| | | | | | | | | map from instruction* to SCEVHandles. When we delete instructions, we have to tell it about it. We would run into nasty cases where new instructions were reallocated at old instruction addresses and get the old map values. Bad bad bad :( llvm-svn: 22632
* The correct fix for PR612, which also fixesChris Lattner2005-08-031-2/+12
| | | | | | Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll llvm-svn: 22628
* When inserting code, make sure not to insert it before PHI nodes. ThisChris Lattner2005-08-031-1/+3
| | | | | | fixes PR612 and Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll llvm-svn: 22626
* Fix Transforms/SimplifyCFG/2005-08-03-PHIFactorCrash.ll, a problem thatChris Lattner2005-08-031-2/+3
| | | | | | occurred while bugpointing another testcase llvm-svn: 22621
* Finally, add the required constraint checks to fix ↵Chris Lattner2005-08-031-2/+29
| | | | | | | | Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll the right way llvm-svn: 22615
* Simplify some code, add the correct pred checksChris Lattner2005-08-031-16/+25
| | | | llvm-svn: 22613
* Refactor code out of PropagatePredecessorsForPHIs, turning it into a pure ↵Chris Lattner2005-08-031-37/+36
| | | | | | function with no side-effects llvm-svn: 22612
* use splice instead of remove/insert to avoid some symtab operationsChris Lattner2005-08-031-2/+2
| | | | llvm-svn: 22611
* move two functions up in the file, use SafeToMergeTerminators to eliminateChris Lattner2005-08-031-61/+45
| | | | | | some duplicated code llvm-svn: 22610
* Rip some code out of the main SimplifyCFG function into a subfunction andChris Lattner2005-08-031-78/+72
| | | | | | call it from the only place it is live. No functionality changes. llvm-svn: 22609
* Disable this patch:Chris Lattner2005-08-021-1/+1
| | | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050801/027345.html This breaks real programs and only fixes an obscure regression testcase. A real fix is in development. llvm-svn: 22606
* Change a place to use an arbitrary value instead of null, when possibleChris Lattner2005-08-021-3/+3
| | | | llvm-svn: 22605
* Update to use the new MathExtras.h support for log2 computation.Chris Lattner2005-08-021-22/+15
| | | | | | Patch contributed by Jim Laskey! llvm-svn: 22592
* Like the comment says, do not insert cast instructions before phi nodesChris Lattner2005-08-021-0/+4
| | | | llvm-svn: 22586
* This code was very close, but not quite right. It did not take intoChris Lattner2005-08-021-3/+10
| | | | | | | | consideration the case where a reference in an unreachable block could occur. This fixes Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll, something I ran into while bugpoint'ing another pass. llvm-svn: 22584
* add a comment, make a check more lenientChris Lattner2005-08-021-8/+10
| | | | llvm-svn: 22581
* Simplify for loop, clear a per-loop map after processing each loopChris Lattner2005-08-021-1/+2
| | | | llvm-svn: 22580
* Add a commentChris Lattner2005-08-021-0/+10
| | | | | | | Make LSR ignore GEP's that have loop variant base values, as we currently cannot codegen them llvm-svn: 22576
* Fix an iterator invalidation problemChris Lattner2005-08-021-1/+3
| | | | llvm-svn: 22575
* ConstantInt::get only works for arguments < 128.Chris Lattner2005-08-011-2/+6
| | | | | | | | | | SimplifyLibCalls probably has to be audited to make sure it does not make this mistake elsewhere. Also, if this code knows that the type will be unsigned, obviously one arm of this is dead. Reid, can you take a look into this further? llvm-svn: 22566
* Keep tabs and trailing spaces out.Jeff Cohen2005-07-301-23/+23
| | | | llvm-svn: 22565
* Fix VC++ build problems.Jeff Cohen2005-07-301-0/+1
| | | | llvm-svn: 22564
* Ack, typoNate Begeman2005-07-301-1/+1
| | | | llvm-svn: 22560
* Commit a new LoopStrengthReduce pass that can use scalar evolutions andNate Begeman2005-07-301-179/+517
| | | | | | | | target data to decide which loop induction variables to strength reduce and how to do so. This work is mostly by Chris Lattner, with tweaks by me to get it working on some of MultiSource. llvm-svn: 22558
* Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so thatNate Begeman2005-07-301-238/+1
| | | | | | other passes may use it. llvm-svn: 22557
* Eliminate all remaining tabs and trailing spaces.Jeff Cohen2005-07-279-181/+181
| | | | llvm-svn: 22523
* ConvertibleToGEP always returns 0, remove some old crufty code whichChris Lattner2005-07-264-369/+0
| | | | | | is actually dead because of this! llvm-svn: 22515
* Do not let MaskedValueIsZero consider undef to be zero, for reasonsChris Lattner2005-07-201-2/+8
| | | | | | | | explained in the comment. This fixes UnitTests/2003-09-18-BitFieldTest on darwin llvm-svn: 22483
* When transforming &A[i] < &A[j] -> i < j, make sure to perform the comparisonChris Lattner2005-07-181-4/+11
| | | | | | as a signed compare. This patch may fix PR597, but is correct in any case. llvm-svn: 22465
* Fix a problem that instcombine would hit when dealing with unreachable code.Chris Lattner2005-07-071-5/+29
| | | | | | | | | Because the instcombine has to scan the entire function when it starts up to begin with, we might as well do it in DFO so we can nuke unreachable code. This fixes: Transforms/InstCombine/2005-07-07-DeadPHILoop.ll llvm-svn: 22348
* Fix PR590 and Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll.Chris Lattner2005-06-301-19/+65
| | | | | | | | The optimization for locally used allocas was not safe for allocas that were read before they were written. This change disables that optimization in that case. llvm-svn: 22318
* Doh! Forgot to LLVMify the style.John Criswell2005-06-291-2/+0
| | | | llvm-svn: 22312
* Basic fix for PR#591; don't convert an fprintf() to an fwrite() if thereJohn Criswell2005-06-291-0/+9
| | | | | | | | | is a mismatch in their character type pointers (i.e. fprintf() prints an array of ubytes while fwrite() takes an array of sbytes). We can probably do better than this (such as casting the ubyte to an sbyte). llvm-svn: 22310
* add a debug typeChris Lattner2005-06-241-0/+1
| | | | llvm-svn: 22277
* prevent va_arg from being hoisted from a loopAndrew Lenharth2005-06-201-1/+1
| | | | llvm-svn: 22265
* prevent DCE of vaarg intrinsics. This should take care of most regressionsAndrew Lenharth2005-06-191-2/+0
| | | | llvm-svn: 22263
* core changes for varargsAndrew Lenharth2005-06-181-1/+1
| | | | llvm-svn: 22254
* Fix a problem with the strcmp optimization checking the wrong string andReid Spencer2005-06-181-13/+16
| | | | | | not casting to the correct type. llvm-svn: 22250
* Clean up some uninitialized variables and missing return statements thatReid Spencer2005-06-181-3/+3
| | | | | | GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build. llvm-svn: 22249
* This is not true: (X != 13 | X < 15) -> X < 15Chris Lattner2005-06-171-2/+1
| | | | | | | It is actually always true. This fixes PR586 and Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll llvm-svn: 22236
* Don't crash when dealing with INTMIN. This fixes PR585 andChris Lattner2005-06-171-0/+2
| | | | | | Transforms/InstCombine/2005-06-16-RangeCrash.ll llvm-svn: 22234
* Don't crash on: X = phi (X, X).Chris Lattner2005-06-171-6/+9
| | | | | | This fixes PR584 and Transforms/SimplifyCFG/2005-06-16-PHICrash.ll llvm-svn: 22232
* avoid constructing out of range shift amounts.Chris Lattner2005-06-171-2/+4
| | | | llvm-svn: 22230
* Fix PR583 and testcase Transforms/InstCombine/2005-06-15-DivSelectCrash.llChris Lattner2005-06-161-1/+1
| | | | llvm-svn: 22227
* Fix PR571, removing code that does just the WRONG thing :)Chris Lattner2005-06-161-27/+1
| | | | llvm-svn: 22225
* Fix a bug in my previous patch. Do not get the shift amount type (whichChris Lattner2005-06-161-1/+1
| | | | | | is always ubyte, get the type being shifted). This unbreaks espresso llvm-svn: 22224
* Fix PR575, patch provided by John Mellor-Crummey. Thanks!Chris Lattner2005-06-151-0/+1
| | | | llvm-svn: 22223
* Fix PR582. The rewriter can move casts around, which invalidated theChris Lattner2005-06-151-1/+11
| | | | | | BB iterator. This fixes Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll llvm-svn: 22221
* Do not promote globals only used by main to locals if there are constantexprsChris Lattner2005-06-151-3/+11
| | | | | | or other uses hanging off of them. llvm-svn: 22219
* Fix PR577 and testcase InstCombine/2005-06-15-ShiftSetCCCrash.ll.Chris Lattner2005-06-151-2/+16
| | | | | | Do not perform undefined out of range shifts. llvm-svn: 22217
OpenPOWER on IntegriCloud