summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* The TBB and TBH instructions for Thumb2 are really handy for jump tables, butJim Grosbach2009-11-111-3/+96
| | | | | | | | | | | can only branch forward. To best take advantage of them, we'd like to adjust the basic blocks around a bit when reasonable. This patch puts basics in place to do that, with a super-simple algorithm for backwards jump table targets that creates a new branch after the jump table which branches backwards. Real heuristics for reordering blocks or other modifications rather than inserting branches will follow. llvm-svn: 86791
* stub out some LazyValueInfo interfaces, and have JumpThreadingChris Lattner2009-11-112-19/+161
| | | | | | | | start using them in a trivial way when -enable-jump-threading-lvi is passed. enable-jump-threading-lvi will be my playground for awhile. llvm-svn: 86789
* Make sure that the exception handling data has the same visibility as theBill Wendling2009-11-111-2/+7
| | | | | | function it's generated for. llvm-svn: 86779
* Do not assume first function scope seen represents current function. Devang Patel2009-11-111-2/+3
| | | | llvm-svn: 86771
* Add From arguments to StringRef search functions, and tweak doxyments.Daniel Dunbar2009-11-111-9/+24
| | | | | | Also, add unittests for find_first_of and find_first_not_of. llvm-svn: 86770
* llvm-gcc/clang don't (won't?) need this hack.Daniel Dunbar2009-11-111-1/+2
| | | | llvm-svn: 86769
* Stub out a new lazy value info pass, which will eventuallyChris Lattner2009-11-112-0/+32
| | | | | | vend value constraint information to the optimizer. llvm-svn: 86767
* add a fixmeChris Lattner2009-11-111-0/+4
| | | | llvm-svn: 86766
* remove redundant foward declaration. This function is already in Chris Lattner2009-11-111-1/+3
| | | | | | Analysis/Passes.h llvm-svn: 86765
* While creating DbgScopes, do not forget parent scope. Devang Patel2009-11-111-0/+2
| | | | llvm-svn: 86763
* Block terminator may be a switch.Evan Cheng2009-11-111-1/+1
| | | | llvm-svn: 86761
* add a noteChris Lattner2009-11-101-0/+2
| | | | llvm-svn: 86756
* I did this a week or two agoChris Lattner2009-11-101-6/+0
| | | | llvm-svn: 86754
* Ignore variable if scope info is not available.Devang Patel2009-11-101-2/+5
| | | | llvm-svn: 86753
* Emit correct code when making a ConstantPool entry for a vectorDale Johannesen2009-11-101-2/+11
| | | | | | | | | constant whose component type is not a legal type for the target. (If the target ConstantPool cannot handle this type either, it has an opportunity to merge elements. In practice any target with 8-bit bytes must support i8 *as data*). 7320806 (partial). llvm-svn: 86751
* Implement support to debug inlined functions.Devang Patel2009-11-1010-570/+657
| | | | llvm-svn: 86748
* implement a TODO by teaching jump threading about "xor x, 1".Chris Lattner2009-11-101-2/+14
| | | | llvm-svn: 86739
* move some generally useful functions out of jump threadingChris Lattner2009-11-103-85/+82
| | | | | | into libanalysis and transformutils. llvm-svn: 86735
* Don't mark conditional branch instructions as control barriers.Dan Gohman2009-11-101-14/+16
| | | | llvm-svn: 86732
* Modify how the prologue encoded the "move" information for the FDE. GCCBill Wendling2009-11-101-31/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | generates a sequence similar to this: __Z4funci: LFB2: mflr r0 LCFI0: stmw r30,-8(r1) LCFI1: stw r0,8(r1) LCFI2: stwu r1,-80(r1) LCFI3: mr r30,r1 LCFI4: where LCFI3 and LCFI4 are used by the FDE to indicate what the FP, LR, and other things are. We generated something more like this: Leh_func_begin1: mflr r0 stw r31, 20(r1) stw r0, 8(r1) Llabel1: stwu r1, -80(r1) Llabel2: mr r31, r1 Note that we are missing the "mr" instruction. This patch makes it more like the GCC output. llvm-svn: 86729
* Process InlinedAt location info.Devang Patel2009-11-101-16/+21
| | | | | | Update InsertDeclare to return newly inserted llvm.dbg.declare intrinsic. llvm-svn: 86727
* fix a crash in SCCP handling extractvalue of an array, pointed out andChris Lattner2009-11-101-3/+8
| | | | | | tracked down by Stephan Reiter! llvm-svn: 86726
* Teach PHIElimination to split critical edges when -split-phi-edges is enabled.Jakob Stoklund Olesen2009-11-103-4/+125
| | | | | | | | Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. llvm-svn: 86725
* Refactoring: Extract method PHIElimination::isLiveOut().Jakob Stoklund Olesen2009-11-102-69/+65
| | | | | | | Clean up some whitespace. No functional changes. llvm-svn: 86724
* improve comment.Chris Lattner2009-11-101-2/+5
| | | | llvm-svn: 86723
* Make jump threading eliminate blocks that just contain phi nodes,Chris Lattner2009-11-101-0/+21
| | | | | | | | debug intrinsics, and an unconditional branch when possible. This reuses the TryToSimplifyUncondBranchFromEmptyBlock function split out of simplifycfg. llvm-svn: 86722
* Generalize lsr code that optimize loop to count down towards zero.Evan Cheng2009-11-101-80/+126
| | | | llvm-svn: 86715
* make this handle redefinition of malloc function with different prototype ↵Victor Hernandez2009-11-101-7/+9
| | | | | | correctly llvm-svn: 86712
* Change Thumb1 address mode printing, instead ofEvan Cheng2009-11-101-5/+2
| | | | | | | | | | [r0, #2 * 4] Now [r0, #8] This makes Thumb2 assembly more uniform and frankly the scale doesn't add much. llvm-svn: 86707
* Add a comment.Evan Cheng2009-11-101-0/+2
| | | | llvm-svn: 86706
* Add defensive break.Duncan Sands2009-11-101-0/+1
| | | | llvm-svn: 86705
* Add a monstrous hack to improve X86ISelDAGToDAG compile time.Daniel Dunbar2009-11-101-0/+8
| | | | | | | | | | - Force NDEBUG on in any Release build. This drops the compile time to ~100s from ~600s, in Release mode. - This may just be a temporary workaround, I don't know the true nature of the gcc-4.2 compile time performance problem. llvm-svn: 86695
* Fix obvious typo.Duncan Sands2009-11-101-1/+1
| | | | llvm-svn: 86694
* clarify logic.Chris Lattner2009-11-101-4/+4
| | | | llvm-svn: 86689
* Teach DSE to eliminate useless trampolines.Duncan Sands2009-11-101-6/+19
| | | | llvm-svn: 86683
* Add brackets to make gcc-4.4 happy.Duncan Sands2009-11-101-3/+3
| | | | llvm-svn: 86681
* Codegen support for the llvm.invariant/lifetime.start/end intrinsics:Duncan Sands2009-11-102-0/+19
| | | | | | just throw them away. llvm-svn: 86678
* Update computeArraySize() to use ComputeMultiple() to determine the array ↵Victor Hernandez2009-11-102-97/+26
| | | | | | size associated with a malloc; also extend PerformHeapAllocSRoA() to check if the optimized malloc's arg had its highest bit set, so that it is safe for ComputeMultiple() to look through sext instructions while determining the optimized malloc's array size llvm-svn: 86676
* Add ComputeMultiple() analysis function that recursively determines if a ↵Victor Hernandez2009-11-101-0/+125
| | | | | | Value V is a multiple of unsigned Base llvm-svn: 86675
* unify the code that determines whether it is a good idea to change the typeChris Lattner2009-11-101-27/+36
| | | | | | | of a computation. This fixes some infinite loops when dealing with TD that has no native types. llvm-svn: 86670
* Simplify.Nick Lewycky2009-11-101-3/+1
| | | | llvm-svn: 86668
* Reapply r86359, "Teach dead store elimination that certain intrinsics write toNick Lewycky2009-11-101-63/+118
| | | | | | | memory just like a store" with bug fixed (partial-overwrite.ll is the regression test). llvm-svn: 86667
* refactor TryToSimplifyUncondBranchFromEmptyBlock out of SimplifyCFG.Chris Lattner2009-11-102-164/+173
| | | | llvm-svn: 86666
* CMake: Support for building llvm loadable modules.Oscar Fuentes2009-11-101-1/+1
| | | | llvm-svn: 86656
* Fix PR5445Bruno Cardoso Lopes2009-11-101-1/+1
| | | | llvm-svn: 86651
* I misread the parens, not so redundant after all.Chris Lattner2009-11-101-4/+4
| | | | llvm-svn: 86648
* make jump threading recursively simplify expressions instead of doing it Chris Lattner2009-11-101-20/+42
| | | | | | | | | | | | | | | | | | | just one level deep. On the testcase we go from getting this: F1: ; preds = %T2 %F = and i1 true, %cond ; <i1> [#uses=1] br i1 %F, label %X, label %Y to a fully threaded: F1: ; preds = %T2 br label %Y This changes gets us to the point where we're forming (too many) switch instructions on doug's strswitch testcase. llvm-svn: 86646
* remove some redundant parens.Chris Lattner2009-11-101-4/+4
| | | | llvm-svn: 86645
* Remove an unused variable.Dan Gohman2009-11-101-1/+0
| | | | llvm-svn: 86642
* Minor code simplification.Dan Gohman2009-11-101-1/+1
| | | | llvm-svn: 86641
OpenPOWER on IntegriCloud