aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Tidy up.Jim Grosbach2010-11-301-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120443 91177308-0d34-0410-b5e6-96231b3b80d8
* Pseudo-ize ARM MOVPCRXJim Grosbach2010-11-302-8/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120442 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete a few no longer needed references to pseudos.Jim Grosbach2010-11-301-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120441 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the basic block map in LoopInfo from a std::map to a DenseMap. This ↵Cameron Zwarich2010-11-301-4/+5
| | | | | | | | | is a 16% speedup running loops on test-suite + SPEC2000. Reviewed by Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120440 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide encodings for a few more load/store variants.Owen Anderson2010-11-301-4/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120439 91177308-0d34-0410-b5e6-96231b3b80d8
* Pseudo-ize BX_CALL and friends. Remove dead instruction format classes.Jim Grosbach2010-11-303-46/+66
| | | | | | rdar://8685712 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120438 91177308-0d34-0410-b5e6-96231b3b80d8
* Add tests for more forms of Thumb2 loads and stores.Owen Anderson2010-11-301-0/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120436 91177308-0d34-0410-b5e6-96231b3b80d8
* add TLI support indicating that jumps are more expensive than logical operationsChris Lattner2010-11-303-2/+23
| | | | | | | and use this to disable a specific optimization. Patch by Micah Villmow! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120435 91177308-0d34-0410-b5e6-96231b3b80d8
* ptx: add command-line options for gpu target and ptx versionChe-Liang Chiou2010-11-302-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120423 91177308-0d34-0410-b5e6-96231b3b80d8
* Not all platforms use _<func>. Duh.Eric Christopher2010-11-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120418 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some grammar in comments I noticed.Eric Christopher2010-11-301-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120416 91177308-0d34-0410-b5e6-96231b3b80d8
* This defaults to GenericDomain.Eric Christopher2010-11-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120415 91177308-0d34-0410-b5e6-96231b3b80d8
* PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.Jay Foad2010-11-304-33/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120413 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a PseudoI class and transfer the sse instructions over to useEric Christopher2010-11-302-12/+15
| | | | | | | it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120412 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix insertion point in pcmp expander.Eric Christopher2010-11-301-9/+2
| | | | | | | While I'm there, clean up too many \n even for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120411 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some cleanups from my last patch.Eric Christopher2010-11-302-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120410 91177308-0d34-0410-b5e6-96231b3b80d8
* Add parsing for the Thumb t_addrmode_s4 addressing mode. This can almostBill Wendling2010-11-305-14/+92
| | | | | | | | | | | certainly be made more generic. But it does allow us to parse something like: ldr r3, [r2, r4] correctly in Thumb mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120408 91177308-0d34-0410-b5e6-96231b3b80d8
* ptx: add ld instructionChe-Liang Chiou2010-11-303-9/+118
| | | | | | | | | | support register and register-immediate addressing mode todo: immediate and register-register addressing mode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120407 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite the main DSE loop to be written in terms of reasoningChris Lattner2010-11-303-77/+142
| | | | | | | | | | | | | | | | about pairs of AA::Location's instead of looking for MemDep's "Def" predicate. This is more powerful and general, handling memset/memcpy/store all uniformly, and implementing PR8701 and probably obsoleting parts of memcpyoptimizer. This also fixes an obscure bug with init.trampoline and i8 stores, but I'm not surprised it hasn't been hit yet. Enhancing init.trampoline to carry the size that it stores would allow DSE to be much more aggressive about optimizing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120406 91177308-0d34-0410-b5e6-96231b3b80d8
* death to extraneous \n's.Chris Lattner2010-11-301-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120405 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite mwait and monitor support and custom lower arguments.Eric Christopher2010-11-304-4/+101
| | | | | | | Fixes PR8573. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120404 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a puts optimization that converts puts() to putchar('\n').Anders Carlsson2010-11-302-3/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120398 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo.Anders Carlsson2010-11-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120394 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename this test to FPuts.ll since it actually tests fputs.Anders Carlsson2010-11-301-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120393 91177308-0d34-0410-b5e6-96231b3b80d8
* rename a function and reduce some indentation, no functionality change.Chris Lattner2010-11-301-19/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120391 91177308-0d34-0410-b5e6-96231b3b80d8
* Make @llvm.invariant.start not be readonly, so that it has side-effects. ThisNick Lewycky2010-11-302-2/+2
| | | | | | | | unbreaks test/Transforms/InstCombine/invariant.ll which was broken by r120382. This is a fix-forward to do what I think Chris intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120388 91177308-0d34-0410-b5e6-96231b3b80d8
* Stub out a new LiveDebugVariables pass.Jakob Stoklund Olesen2010-11-305-0/+110
| | | | | | | | | | | | | This analysis is going to run immediately after LiveIntervals. It will stay alive during register allocation and keep track of user variables mentioned in DBG_VALUE instructions. When the register allocator is moving values between registers and the stack, it is very hard to keep track of DBG_VALUE instructions. We usually get it wrong. This analysis maintains a data structure that makes it easy to update DBG_VALUE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120385 91177308-0d34-0410-b5e6-96231b3b80d8
* remove a use of llvm-disChris Lattner2010-11-301-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120383 91177308-0d34-0410-b5e6-96231b3b80d8
* remove the pointless check of MemoryUseIntrinsic fromChris Lattner2010-11-302-27/+1
| | | | | | | | is trivially dead, since these have side effects. This makes the (misnamed) MemoryUseIntrinsic class dead, so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120382 91177308-0d34-0410-b5e6-96231b3b80d8
* strength reduce this.Chris Lattner2010-11-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120381 91177308-0d34-0410-b5e6-96231b3b80d8
* getLocationForDest should work for memset as well.Chris Lattner2010-11-302-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120380 91177308-0d34-0410-b5e6-96231b3b80d8
* rename doesClobberMemory -> hasMemoryWrite to be more specific, andChris Lattner2010-11-301-11/+11
| | | | | | | remove an actively-wrong comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120378 91177308-0d34-0410-b5e6-96231b3b80d8
* clean up handling of 'free', detangling it from everything else.Chris Lattner2010-11-302-22/+26
| | | | | | | | It can be seriously improved, but at least now it isn't intertwined with the other logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120377 91177308-0d34-0410-b5e6-96231b3b80d8
* merge one more awayChris Lattner2010-11-302-9/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120375 91177308-0d34-0410-b5e6-96231b3b80d8
* I already merged partial-overwrite.ll -> PartialStore.llChris Lattner2010-11-303-29/+20
| | | | | | | Merge context-sensitive.ll -> simple.ll and upgrade it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120374 91177308-0d34-0410-b5e6-96231b3b80d8
* clean up DSE tests, removing some poorly reduced and useless old test,Chris Lattner2010-11-3014-1301/+115
| | | | | | | merging more into other larger .ll files, filecheckizing along the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120373 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanups. No functional change.Bill Wendling2010-11-301-24/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120372 91177308-0d34-0410-b5e6-96231b3b80d8
* s/ARM::BRIND/ARM::BX/g to coincide with r120366.Bill Wendling2010-11-303-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120371 91177308-0d34-0410-b5e6-96231b3b80d8
* enhance basicaa to return "Mod" for a memcpy call when theChris Lattner2010-11-302-2/+18
| | | | | | | queried location doesn't overlap the source, and add a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120370 91177308-0d34-0410-b5e6-96231b3b80d8
* Add correct encoding for "bl __aeabi_read_tp". However, the asm matcher isn'tBill Wendling2010-11-301-3/+5
| | | | | | | able to match this yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120369 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach basicaa that memset's modref set is at worst "mod" and neverChris Lattner2010-11-303-7/+28
| | | | | | | | | | | contains "ref". Enhance DSE to use a modref query instead of a store-specific hack to generalize the "ignore may-alias stores" optimization to handle memset and memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120368 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename BX/BRIND/etc patterns to clarify which is actually the BX instructionJim Grosbach2010-11-302-9/+9
| | | | | | and which are pseudos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120366 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some encoding for the adr instruction. Labels still need to be finished.Bill Wendling2010-11-301-6/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120365 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct Thumb2 encodings for a much wider range of loads and stores.Owen Anderson2010-11-305-48/+111
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120364 91177308-0d34-0410-b5e6-96231b3b80d8
* my previous patch would cause us to start deleting some volatileChris Lattner2010-11-302-1/+21
| | | | | | | stores, fix and add a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120363 91177308-0d34-0410-b5e6-96231b3b80d8
* Make a few more ARM pseudo instructions actually use the PseudoInst base class.Jim Grosbach2010-11-301-14/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120362 91177308-0d34-0410-b5e6-96231b3b80d8
* Predicate encoding should be withing {}s. And general cleanup.Bill Wendling2010-11-302-8/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120361 91177308-0d34-0410-b5e6-96231b3b80d8
* Predicate encoding should be withing {}s.Bill Wendling2010-11-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120360 91177308-0d34-0410-b5e6-96231b3b80d8
* two changes to DSE that shouldn't affect anything:Chris Lattner2010-11-301-58/+28
| | | | | | | | | | | | | | | | 1. Don't bother trying to optimize: lifetime.end(ptr) store(ptr) as it is undefined, and therefore shouldn't exist. 2. Move the 'storing a loaded pointer' xform up, simplifying the may-aliased store code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120359 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the encoding of VLD4-dup alignment.Bob Wilson2010-11-305-37/+68
| | | | | | | | The only reasonable way I could find to do this is to provide an alternate version of the addrmode6 operand with a different encoding function. Use it for all the VLD-dup instructions for the sake of consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120358 91177308-0d34-0410-b5e6-96231b3b80d8