summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* move GetPointerBaseWithConstantOffset out of GVN into ValueTracking.hChris Lattner2010-11-302-58/+53
| | | | llvm-svn: 120476
* remove a fixed fixmeChris Lattner2010-11-301-2/+0
| | | | llvm-svn: 120474
* Make DeleteDeadInstruction be a static function, move some code around.Chris Lattner2010-11-301-59/+64
| | | | llvm-svn: 120471
* Move X86InstrFPStack.td over to PseudoI as well.Eric Christopher2010-11-301-27/+9
| | | | llvm-svn: 120470
* switch RemoveAccessedObjects to use AliasAnalysis::Location to simplifyChris Lattner2010-11-301-17/+13
| | | | | | | the code. We now get accurate sizes on Loads, though it surely doesn't matter in practice. llvm-svn: 120469
* two improvements to RemoveAccessedObjects:Chris Lattner2010-11-301-28/+7
| | | | | | | | | | | | | 1. if the underlying pointer passed in can be resolved to any argument or alloca, then we don't need to scan. Previously we would only avoid the scan if the alloca or byval was actually considered dead. 2. The dead store processing code is itself completely dead and didn't handle volatile stores right anyway, so delete it. This allows simplifying the interface to RemoveAccessedObjects. llvm-svn: 120467
* Migrate X86InstrControl.td to use PseudoI and fix a couple of 80-col violationsEric Christopher2010-11-301-19/+15
| | | | | | while I'm in there. llvm-svn: 120466
* remove the "undead" terminology, which is nonstandard and never Chris Lattner2010-11-301-40/+47
| | | | | | | | made sense to me. We now have a set of dead stack objects, and they become live when loaded. Fix a theoretical problem where we'd pass in the wrong pointer to the alias query. llvm-svn: 120465
* move call handling in handleEndBlock up a bit, and simplify it.Chris Lattner2010-11-301-37/+40
| | | | | | | | If the call might read all the allocas, stop scanning early. Convert a vector to smallvector, shrink SmallPtrSet to 16 instead of 64 to avoid crazy linear scans. llvm-svn: 120463
* Avoid exponential growth of a table. It feels likeDale Johannesen2010-11-301-5/+22
| | | | | | there should be a better way to do this. PR 8679. llvm-svn: 120457
* Provide Thumb2 encodings for a few miscellaneous instructions.Owen Anderson2010-11-301-8/+22
| | | | llvm-svn: 120455
* various cleanups and code simplificationChris Lattner2010-11-301-87/+63
| | | | llvm-svn: 120454
* make getPointerSize a static function. Add ivars to DSE forChris Lattner2010-11-301-46/+42
| | | | | | AA and MD pass info instead of using getAnalysis<> all over. llvm-svn: 120453
* reduce indentation, clean up TD use a bit.Chris Lattner2010-11-301-28/+31
| | | | llvm-svn: 120452
* Add FIXMEJim Grosbach2010-11-301-0/+1
| | | | llvm-svn: 120451
* Add encoding support for Thumb2 PLD and PLI instructions.Owen Anderson2010-11-303-1/+43
| | | | llvm-svn: 120449
* Noticed this on inspection, fix and update some comments.Eric Christopher2010-11-301-3/+4
| | | | llvm-svn: 120447
* enhance isRemovable to refuse to delete volatile mem transfersChris Lattner2010-11-301-4/+19
| | | | | | | now that DSE hacks on them. This fixes a regression I introduced, by generalizing DSE to hack on transfers. llvm-svn: 120445
* Pseudo-ize ARM MOVPCRXJim Grosbach2010-11-302-8/+19
| | | | llvm-svn: 120442
* Provide encodings for a few more load/store variants.Owen Anderson2010-11-301-4/+16
| | | | llvm-svn: 120439
* Pseudo-ize BX_CALL and friends. Remove dead instruction format classes.Jim Grosbach2010-11-303-46/+66
| | | | | | rdar://8685712 llvm-svn: 120438
* add TLI support indicating that jumps are more expensive than logical operationsChris Lattner2010-11-302-1/+4
| | | | | | and use this to disable a specific optimization. Patch by Micah Villmow! llvm-svn: 120435
* ptx: add command-line options for gpu target and ptx versionChe-Liang Chiou2010-11-301-0/+18
| | | | llvm-svn: 120423
* Fix some grammar in comments I noticed.Eric Christopher2010-11-301-5/+5
| | | | llvm-svn: 120416
* This defaults to GenericDomain.Eric Christopher2010-11-301-1/+1
| | | | llvm-svn: 120415
* PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.Jay Foad2010-11-303-10/+9
| | | | llvm-svn: 120413
* Implement a PseudoI class and transfer the sse instructions over to useEric Christopher2010-11-302-12/+15
| | | | | | it. llvm-svn: 120412
* Fix insertion point in pcmp expander.Eric Christopher2010-11-301-9/+2
| | | | | | While I'm there, clean up too many \n even for me. llvm-svn: 120411
* Fix some cleanups from my last patch.Eric Christopher2010-11-302-5/+5
| | | | llvm-svn: 120410
* Add parsing for the Thumb t_addrmode_s4 addressing mode. This can almostBill Wendling2010-11-304-14/+89
| | | | | | | | | | certainly be made more generic. But it does allow us to parse something like: ldr r3, [r2, r4] correctly in Thumb mode. llvm-svn: 120408
* ptx: add ld instructionChe-Liang Chiou2010-11-303-9/+118
| | | | | | | support register and register-immediate addressing mode todo: immediate and register-register addressing mode llvm-svn: 120407
* Rewrite the main DSE loop to be written in terms of reasoningChris Lattner2010-11-301-77/+106
| | | | | | | | | | | | | | 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. llvm-svn: 120406
* Rewrite mwait and monitor support and custom lower arguments.Eric Christopher2010-11-303-4/+75
| | | | | | Fixes PR8573. llvm-svn: 120404
* Add a puts optimization that converts puts() to putchar('\n').Anders Carlsson2010-11-301-3/+30
| | | | llvm-svn: 120398
* rename a function and reduce some indentation, no functionality change.Chris Lattner2010-11-301-19/+21
| | | | llvm-svn: 120391
* Stub out a new LiveDebugVariables pass.Jakob Stoklund Olesen2010-11-304-0/+109
| | | | | | | | | | | | | 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. llvm-svn: 120385
* remove the pointless check of MemoryUseIntrinsic fromChris Lattner2010-11-301-3/+0
| | | | | | | is trivially dead, since these have side effects. This makes the (misnamed) MemoryUseIntrinsic class dead, so remove it. llvm-svn: 120382
* strength reduce this.Chris Lattner2010-11-301-1/+1
| | | | llvm-svn: 120381
* getLocationForDest should work for memset as well.Chris Lattner2010-11-301-1/+1
| | | | llvm-svn: 120380
* rename doesClobberMemory -> hasMemoryWrite to be more specific, andChris Lattner2010-11-301-11/+11
| | | | | | remove an actively-wrong comment. llvm-svn: 120378
* clean up handling of 'free', detangling it from everything else.Chris Lattner2010-11-301-22/+22
| | | | | | | It can be seriously improved, but at least now it isn't intertwined with the other logic. llvm-svn: 120377
* Minor cleanups. No functional change.Bill Wendling2010-11-301-24/+23
| | | | llvm-svn: 120372
* s/ARM::BRIND/ARM::BX/g to coincide with r120366.Bill Wendling2010-11-303-5/+5
| | | | llvm-svn: 120371
* enhance basicaa to return "Mod" for a memcpy call when theChris Lattner2010-11-301-0/+5
| | | | | | queried location doesn't overlap the source, and add a testcase. llvm-svn: 120370
* Add correct encoding for "bl __aeabi_read_tp". However, the asm matcher isn'tBill Wendling2010-11-301-3/+5
| | | | | | able to match this yet. llvm-svn: 120369
* Teach basicaa that memset's modref set is at worst "mod" and neverChris Lattner2010-11-302-7/+14
| | | | | | | | | | 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. llvm-svn: 120368
* Rename BX/BRIND/etc patterns to clarify which is actually the BX instructionJim Grosbach2010-11-302-9/+9
| | | | | | and which are pseudos. llvm-svn: 120366
* Add some encoding for the adr instruction. Labels still need to be finished.Bill Wendling2010-11-301-6/+16
| | | | llvm-svn: 120365
* Correct Thumb2 encodings for a much wider range of loads and stores.Owen Anderson2010-11-304-48/+96
| | | | llvm-svn: 120364
* my previous patch would cause us to start deleting some volatileChris Lattner2010-11-301-1/+1
| | | | | | stores, fix and add a testcase. llvm-svn: 120363
OpenPOWER on IntegriCloud