summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Don't use operator[] here, because it's not desirable to insert a defaultDan Gohman2010-07-011-2/+5
| | | | | | value if the search fails. llvm-svn: 107368
* - Add AVX SSE2 Move doubleword and quadword instructions.Bruno Cardoso Lopes2010-07-014-17/+139
| | | | | | | | - Add encode bits for VEX_W - All 128-bit SSE 1 & SSE2 instructions that are described in the .td file now have a AVX encoded form already working. llvm-svn: 107365
* 80-col violation.Mikhail Glushenkov2010-07-011-1/+2
| | | | llvm-svn: 107361
* Trailing whitespace.Mikhail Glushenkov2010-07-011-3/+3
| | | | llvm-svn: 107360
* Add memory operand folding support to InlineSpiller.Jakob Stoklund Olesen2010-07-011-0/+37
| | | | llvm-svn: 107355
* Add support for rematerialization to InlineSpiller.Jakob Stoklund Olesen2010-06-302-33/+130
| | | | llvm-svn: 107351
* Use the catch-all selectors we already found when converting them to use theBill Wendling2010-06-301-16/+23
| | | | | | | correct catch-all value. This saves having to iterate through all of the selectors in the program again. llvm-svn: 107345
* lowerinvoke needs to handle aggregate function args like sjlj eh does.Jim Grosbach2010-06-301-4/+4
| | | | llvm-svn: 107335
* Handle array and vector typed parameters in sjljehprepare like we doJim Grosbach2010-06-301-4/+4
| | | | | | structs. rdar://8145832 llvm-svn: 107332
* Remove all debug info related named mdnodes.Devang Patel2010-06-301-10/+6
| | | | llvm-svn: 107323
* grammar tweak in comment.Jim Grosbach2010-06-301-1/+1
| | | | llvm-svn: 107321
* In ScalarEvolution::forgetValue, eliminate any SCEVUnknownDan Gohman2010-06-301-0/+20
| | | | | | | | | | | entries associated with the value being erased in the folding set map. These entries used to be harmless, because a SCEVUnknown doesn't store any information about its Value*, so having a new Value allocated at the old Value's address wasn't a problem. But now that ScalarEvolution is storing more information about values, this is no longer safe. llvm-svn: 107316
* Move MOVD/MODQ code around, creating sections for each of themBruno Cardoso Lopes2010-06-301-52/+62
| | | | llvm-svn: 107308
* Some fool committed without testing (or even building) first.Jakob Stoklund Olesen2010-06-301-2/+2
| | | | llvm-svn: 107307
* Add AVX SSE2 mask creation and conditional store instructionsBruno Cardoso Lopes2010-06-301-10/+36
| | | | llvm-svn: 107306
* Remember to track spill slot uses in VirtRegMap when inserting loads and stores.Jakob Stoklund Olesen2010-06-302-0/+4
| | | | | | | | | LocalRewriter::runOnMachineFunction uses this information to mark dead spill slots. This means that InlineSpiller now also works for functions that spill. llvm-svn: 107302
* Fix a bug introduced in r107211 where instructions with memory operands are ↵Bruno Cardoso Lopes2010-06-301-91/+78
| | | | | | declared as commutable llvm-svn: 107300
* Revert the part of r107257 which introduced new logic for usingDan Gohman2010-06-301-82/+11
| | | | | | | nsw and nuw flags from IR Instructions. On further consideration, this isn't valid. llvm-svn: 107298
* Remove an unused variable. The call to getRoot has side-effects, soDuncan Sands2010-06-301-1/+0
| | | | | | this could break something (but doesn't seem to). llvm-svn: 107295
* Add AVX SSE2 packed integer extract/insert instructionsBruno Cardoso Lopes2010-06-301-17/+42
| | | | llvm-svn: 107293
* Rather than giving SmallPtrSetImpl a member field SmallArray which is magicallyDuncan Sands2010-06-301-3/+6
| | | | | | | | | | | | | | | | replaced by a bigger array in SmallPtrSet (by overridding it), instead just use a pointer to the start of the storage, and have SmallPtrSet pass in the value to use. This has the disadvantage that SmallPtrSet becomes bigger by one pointer. It has the advantage that it no longer uses tricky C++ rules, and is clearly correct while I'm not sure the previous version was. This was inspired by g++-4.6 pointing out that SmallPtrSetImpl was writing off the end of SmallArray, which it was. Since SmallArray is replaced with a bigger array in SmallPtrSet, the write was still to valid memory. But it was writing off the end of the declared array type - sounds kind of dubious to me, like it sounded dubious to g++-4.6. Maybe g++-4.6 is wrong and this construct is perfectly valid and correctly compiled by all compilers, but I think it is better to avoid the whole can of worms by avoiding this construct. llvm-svn: 107285
* use ArgOperand APIGabor Greif2010-06-301-10/+10
| | | | llvm-svn: 107282
* use ArgOperand APIGabor Greif2010-06-301-1/+1
| | | | llvm-svn: 107280
* use ArgOperand APIGabor Greif2010-06-301-6/+6
| | | | llvm-svn: 107279
* use ArgOperand APIGabor Greif2010-06-301-10/+12
| | | | llvm-svn: 107278
* use ArgOperand APIGabor Greif2010-06-301-2/+2
| | | | llvm-svn: 107277
* use CallSite::arg_end instead of CallInst::op_endGabor Greif2010-06-301-1/+1
| | | | llvm-svn: 107276
* use getArgOperand (corrected by CallInst::ArgOffset) instead of getOperandGabor Greif2010-06-301-3/+3
| | | | llvm-svn: 107275
* use getArgOperand (corrected by CallInst::ArgOffset) instead of getOperandGabor Greif2010-06-301-1/+2
| | | | llvm-svn: 107273
* use getNumArgOperands instead of getNumOperandsGabor Greif2010-06-301-2/+2
| | | | llvm-svn: 107272
* use getArgOperand instead of getOperandGabor Greif2010-06-301-4/+4
| | | | llvm-svn: 107271
* use getArgOperand instead of getOperandGabor Greif2010-06-301-2/+2
| | | | llvm-svn: 107270
* use getArgOperand instead of getOperandGabor Greif2010-06-301-8/+8
| | | | llvm-svn: 107269
* Improve ScalarEvolution's nsw and nuw preservation.Dan Gohman2010-06-301-31/+105
| | | | llvm-svn: 107257
* When computing a new ConservativeResult, intersect it withDan Gohman2010-06-301-1/+2
| | | | | | the old one instead of replacing it, to be more precise. llvm-svn: 107256
* Rework scev-aa's basic computation so that it doesn't dependDan Gohman2010-06-301-7/+31
| | | | | | | | on ScalarEvolution successfully folding and preserving range information for both A-B and B-A. Now, if it gets either one, it's sufficient. llvm-svn: 107249
* Simplify.Dan Gohman2010-06-301-2/+1
| | | | llvm-svn: 107248
* Add AVX SSE2 integer unpack instructionsBruno Cardoso Lopes2010-06-301-10/+57
| | | | llvm-svn: 107246
* Add AVX SSE2 packed integer shuffle instructionsBruno Cardoso Lopes2010-06-301-0/+14
| | | | llvm-svn: 107245
* Remove trailing whitespace, no functionality changes.John Mosby2010-06-301-19/+18
| | | | llvm-svn: 107244
* Small refactoring of SSE2 packed integer shuffle instructionsBruno Cardoso Lopes2010-06-301-45/+26
| | | | llvm-svn: 107243
* Add AVX SSE2 pack with saturation integer instructionsBruno Cardoso Lopes2010-06-301-0/+9
| | | | llvm-svn: 107241
* Add AVX SSE2 integer packed compare instructionsBruno Cardoso Lopes2010-06-301-0/+17
| | | | llvm-svn: 107240
* - Add AVX form of all SSE2 logical instructionsBruno Cardoso Lopes2010-06-302-22/+99
| | | | | | - Add VEX encoding bits to x86 MRM0r-MRM7r llvm-svn: 107238
* Do not construct DIE for already processed MDNode.Devang Patel2010-06-301-1/+2
| | | | llvm-svn: 107237
* Use skipInstruction() as a simpler way of iterating over instructions using ↵Jakob Stoklund Olesen2010-06-301-10/+2
| | | | | | SrcReg llvm-svn: 107234
* Use clEnumValN macro to work around keyword clashJakob Stoklund Olesen2010-06-301-1/+1
| | | | llvm-svn: 107233
* Add variables into a scope before constructing scope DIE otherwise variables ↵Devang Patel2010-06-301-2/+2
| | | | | | won't be included DIE tree. llvm-svn: 107228
* Begin implementation of an inline spiller.Jakob Stoklund Olesen2010-06-293-1/+147
| | | | | | | | | | | InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. llvm-svn: 107227
* Add *several* AVX integer packed binop instructionsBruno Cardoso Lopes2010-06-291-35/+109
| | | | llvm-svn: 107225
OpenPOWER on IntegriCloud