summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Don't charge full latency for an anti-dependence, in this simplisticDan Gohman2008-12-091-3/+7
| | | | | | pipeline model. llvm-svn: 60733
* Fix a couple of mistaken switch case fall-throughs. Thanks to BillDan Gohman2008-12-081-0/+2
| | | | | | for spotting these! llvm-svn: 60728
* remove DebugIterations option. Despite the accusations, Chris Lattner2008-12-081-14/+1
| | | | | | | jump threading has been shown to only expose problems not have bugs itself. I'm sure it's completely bug free! ;-) llvm-svn: 60725
* Re-apply 60689 now my head is screwed on right.Evan Cheng2008-12-081-0/+2
| | | | llvm-svn: 60711
* Fix the top-level comments, and fix some 80-column violations.Dan Gohman2008-12-081-7/+9
| | | | llvm-svn: 60707
* Revert 60689. It caused many regressions on Darwin targets.Dan Gohman2008-12-081-3/+1
| | | | llvm-svn: 60705
* Fix spelling. Devang Patel2008-12-081-10/+10
| | | | | | Thanks Duncan! llvm-svn: 60702
* Undo previous patch. Devang Patel2008-12-081-3/+1
| | | | llvm-svn: 60701
* Fix comment typo.Duncan Sands2008-12-081-1/+1
| | | | llvm-svn: 60697
* Factor out the code for sign-extending/truncating gep indicesDan Gohman2008-12-082-26/+35
| | | | | | | | | and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. llvm-svn: 60696
* add another level of caching for non-local pointer queries, keepingChris Lattner2008-12-081-7/+32
| | | | | | | | | track of whether the CachedNonLocalPointerInfo for a block is specific to a block. If so, just return it without any pred scanning. This is good for a 6% speedup on GVN (when it uses this lookup method, which it doesn't right now). llvm-svn: 60695
* consistencyChris Lattner2008-12-081-2/+2
| | | | llvm-svn: 60694
* introduce a new RoundUpAlignment helper function, use it to Chris Lattner2008-12-081-32/+29
| | | | | | | remove some more 64-bit divs and rems from the StructLayout ctor. llvm-svn: 60692
* Make ConstantAggregateZero::get return a ConstantAggregateZero*,Dan Gohman2008-12-081-1/+1
| | | | | | as suggested in PR3182. llvm-svn: 60691
* Update CPP backend for PrintModulePass API changes.Dan Gohman2008-12-081-4/+4
| | | | llvm-svn: 60690
* Perform cheap checks first.Evan Cheng2008-12-081-1/+3
| | | | llvm-svn: 60689
* Some minor optimizations for isObjectSmallerThan.Chris Lattner2008-12-081-7/+12
| | | | llvm-svn: 60687
* Move createVirtualRegister out-of-line.Dan Gohman2008-12-081-0/+18
| | | | llvm-svn: 60684
* Clarify some comments.Dan Gohman2008-12-081-2/+2
| | | | llvm-svn: 60683
* Fixes for Visual Studio users. Patch by OvermindDL1 on llvm-dev!Nick Lewycky2008-12-081-1/+1
| | | | llvm-svn: 60679
* add an assert. the cast<> below would catch this but a message is moreChris Lattner2008-12-071-0/+2
| | | | | | useful. llvm-svn: 60674
* factor some code better.Chris Lattner2008-12-071-17/+17
| | | | llvm-svn: 60673
* factor some code, fixing some fixme's.Chris Lattner2008-12-071-32/+23
| | | | llvm-svn: 60672
* add support for caching pointer dependence queries. Nothing uses this yetChris Lattner2008-12-071-17/+211
| | | | | | so it "can't" break anything. That said, it does appear to work. llvm-svn: 60654
* fix a bug I introduced in simplifycfg handling single entry phi Chris Lattner2008-12-071-1/+0
| | | | | | | nodes. FoldSingleEntryPHINodes deletes the PHI, so there is no need to delete it afterward. llvm-svn: 60653
* Switch to top-down mode and fix a crasher this exposed caused by an error in theOwen Anderson2008-12-071-1/+11
| | | | | | live interval updating. llvm-svn: 60652
* Fix typo, psuedo -> pseudo.Nick Lewycky2008-12-072-35/+35
| | | | llvm-svn: 60651
* Some internal refactoring to make it easier to cache results.Chris Lattner2008-12-071-17/+26
| | | | llvm-svn: 60650
* Introduce a new MemDep::getNonLocalPointerDependencyChris Lattner2008-12-071-13/+82
| | | | | | | | | method. This will eventually take over load/store dep queries from getNonLocalDependency. For now it works fine, but is incredibly slow because it does no caching. Lets not switch GVN to use it until that is fixed :) llvm-svn: 60649
* push the "pointer case" up the analysis stack a bit. This causes Chris Lattner2008-12-071-47/+83
| | | | | | | duplication of logic (in 2 places) to determine what pointer a load/store touches. This will be addressed in a future commit. llvm-svn: 60648
* make clients have to know how to call getCallSiteDependencyFromChris Lattner2008-12-071-2/+13
| | | | | | instead of making getDependencyFrom do it. llvm-svn: 60647
* rename some variables for consistencyChris Lattner2008-12-071-6/+6
| | | | llvm-svn: 60644
* I love how using out of scope variables is not an error with GCC, no really ↵Chris Lattner2008-12-071-3/+3
| | | | | | I do. llvm-svn: 60643
* Rename getCallSiteDependency -> getCallSiteDependencyFrom toChris Lattner2008-12-071-4/+5
| | | | | | | | emphasize the scanning and make it more similar to getDependencyFrom llvm-svn: 60642
* a memdep query on a volatile load/store will always returnChris Lattner2008-12-071-11/+10
| | | | | | | | | clobber with the current implementation. Instead of returning a "precise clobber" just return a fuzzy one. This doesn't matter to any clients anyway and should speed up analysis time very very slightly. llvm-svn: 60641
* don't bother touching volatile stores, they will just return clobber onChris Lattner2008-12-071-0/+5
| | | | | | everything interesting anyway. llvm-svn: 60640
* remove the ability to get memdep info for vaarg. I don't think theChris Lattner2008-12-071-6/+9
| | | | | | original impl was correct and noone actually makes the query anyway. llvm-svn: 60639
* improve a note.Chris Lattner2008-12-071-1/+12
| | | | llvm-svn: 60636
* some more PRE/GVN/DSE related notes.Chris Lattner2008-12-061-0/+51
| | | | llvm-svn: 60633
* add a note Chris Lattner2008-12-061-0/+15
| | | | llvm-svn: 60632
* some random notes.Chris Lattner2008-12-061-0/+97
| | | | llvm-svn: 60624
* Minor cleanup. Use dyn_cast, not isa/cast pairs. No functionality change.Nick Lewycky2008-12-061-5/+5
| | | | llvm-svn: 60623
* Clean up some ARM GV asm printing out; minor fixes to match what gcc does.Evan Cheng2008-12-062-20/+32
| | | | llvm-svn: 60621
* Reimplement the inner loop of DSE. It now uniformly uses getDependence(),Chris Lattner2008-12-061-84/+44
| | | | | | | | doesn't do its own local caching, and is slightly more aggressive about free/store dse (see testcase). This eliminates the last external client of MemDep::getDependenceFrom(). llvm-svn: 60619
* Don't use plain %x to print pointer values. I had changed it from %pDan Gohman2008-12-051-1/+2
| | | | | | | | | since %p isn't formatted consistently, but obviously plain %x is wrong. PRIxPTR with a cast to uintptr_t would work here, but that requires inconvenient build-system changes. %lu works on all current and foreseable future hosts. llvm-svn: 60616
* Forgot a file.Dale Johannesen2008-12-051-0/+6
| | | | llvm-svn: 60609
* Make LoopStrengthReduce smarter about hoisting things out ofDale Johannesen2008-12-053-58/+148
| | | | | | | | | | | loops when they can be subsumed into addressing modes. Change X86 addressing mode check to realize that some PIC references need an extra register. (I believe this is correct for Linux, if not, I'm sure someone will tell me.) llvm-svn: 60608
* Make a few major changes to memdep and its clients:Chris Lattner2008-12-054-161/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Merge the 'None' result into 'Normal', making loads and stores return their dependencies on allocations as Normal. 2. Split the 'Normal' result into 'Clobber' and 'Def' to distinguish between the cases when memdep knows the value is produced from when we just know if may be changed. 3. Move some of the logic for determining whether readonly calls are CSEs into memdep instead of it being in GVN. This still leaves verification that the arguments are hte same to GVN to let it know about value equivalences in different contexts. 4. Change memdep's call/call dependency analysis to use getModRefInfo(CallSite,CallSite) instead of doing something very weak. This only really matters for things like DSA, but someday maybe we'll have some other decent context sensitive analyses :) 5. This reimplements the guts of memdep to handle the new results. 6. This simplifies GVN significantly: a) readonly call CSE is slightly simpler b) I eliminated the "getDependencyFrom" chaining for load elimination and load CSE doesn't have to worry about volatile (they are always clobbers) anymore. c) GVN no longer does any 'lastLoad' caching, leaving it to memdep. 7. The logic in DSE is simplified a bit and sped up. A potentially unsafe case was eliminated. llvm-svn: 60607
* Demangle and pretty-print symbols in internal backtraces. Patch byDan Gohman2008-12-051-0/+44
| | | | | | Wesley Peck, with a few fixes by me. llvm-svn: 60605
* Revert invalid r60393. It causes llvm-gcc bootstrap fails in release builds.Anton Korobeynikov2008-12-051-7/+2
| | | | | | See PR3160 for details llvm-svn: 60604
OpenPOWER on IntegriCloud