summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix ExpandVectorBuildThroughStack for the case where theDan Gohman2010-02-251-3/+3
| | | | | | | operands are themselves vectors. Based on a patch by Micah Villmow for PR6338. llvm-svn: 97165
* Revert r97064. Duncan pointed out that bitcasts are defined inDan Gohman2010-02-251-7/+4
| | | | | | | | terms of store and load, which means bitcasting between scalar integer and vector has endian-specific results, which undermines this whole approach. llvm-svn: 97137
* Make getTypeSizeInBits work correctly for array types; it should returnDan Gohman2010-02-241-4/+7
| | | | | | | | | | | | | | | the number of value bits, not the number of bits of allocation for in-memory storage. Make getTypeStoreSize and getTypeAllocSize work consistently for arrays and vectors. Fix several places in CodeGen which compute offsets into in-memory vectors to use TargetData information. This fixes PR1784. llvm-svn: 97064
* Add non-temporal flags and remove an assumption of default arguments.David Greene2010-02-151-63/+105
| | | | llvm-svn: 96240
* Fix "the the" and similar typos.Dan Gohman2010-02-101-1/+1
| | | | llvm-svn: 95781
* Rearrange handling of jump tables. Highlights:Chris Lattner2010-01-251-3/+6
| | | | | | | | | | | | | | | | | | 1. MachineJumpTableInfo is now created lazily for a function the first time it actually makes a jump table instead of for every function. 2. The encoding of jump table entries is now described by the MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the TLI::getJumpTableEncoding() hook, instead of by lots of code scattered throughout the compiler that "knows" that jump table entries are always 32-bits in pic mode (for example). 3. The size and alignment of jump table entries is now calculated based on their kind, instead of at machinefunction creation time. Future work includes using the EntryKind in more places in the compiler, eliminating other logic that "knows" the layout of jump tables in various situations. llvm-svn: 94470
* Improved widening loads by adding support for wider loads ifMon P Wang2010-01-241-2/+2
| | | | | | | the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. llvm-svn: 94338
* Revert an earlier change to SIGN_EXTEND_INREG for vectors. The VTSDNodeDan Gohman2010-01-091-5/+3
| | | | | | | | | | really does need to be a vector type, because TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type, and it needs to be able to distinguish between vectors and scalars. Also, fix some more issues with legalization of vector casts. llvm-svn: 93043
* Change errs() to dbgs().David Greene2010-01-051-3/+4
| | | | llvm-svn: 92575
* Remove dead variable.Bill Wendling2009-12-281-1/+0
| | | | llvm-svn: 92188
* move a few more symbols to .rodataNuno Lopes2009-12-231-1/+1
| | | | llvm-svn: 92011
* Revert r91949 r91942 and r91936.Bill Wendling2009-12-231-407/+119
| | | | llvm-svn: 91953
* Finish up node ordering in ExpandNode.Bill Wendling2009-12-231-45/+113
| | | | llvm-svn: 91949
* Assign ordering to nodes created in ExpandNode. Only roughly 1/2 of the functionBill Wendling2009-12-221-84/+237
| | | | | | is finished. llvm-svn: 91942
* Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAPBill Wendling2009-12-221-15/+82
| | | | | | was using "Tmp1" in the first getNode call instead of Node->getOperand(0). llvm-svn: 91936
* Add more plumbing. This time in the LowerArguments and "get" functions whichBill Wendling2009-12-221-2/+2
| | | | | | | | return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. llvm-svn: 91880
* Introduce EVT::getHalfSizedIntegerVT() for use in ExpandUnalignedStore() inKen Dyck2009-12-171-6/+3
| | | | | | | | | | | | | | LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple type by one, getHalfSizedIntegerVT() searches for the smallest simple integer type that is at least half the size of the type it is called on. This approach has the advantage that it will continue working if a new value type (such as i24) is added to MVT. Also, in preparation for new value types, remove the assertions that non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and truncstore operations. llvm-svn: 91614
* Delete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is neverDan Gohman2009-12-111-1/+0
| | | | | | a vector type. llvm-svn: 91181
* Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG.Dan Gohman2009-12-111-2/+9
| | | | llvm-svn: 91158
* Remove the unused DisableLegalizeTypes option and related code.Dan Gohman2009-12-051-2/+1
| | | | llvm-svn: 90668
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-031-1/+1
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used.Dan Gohman2009-11-231-1/+0
| | | | | | | | Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. llvm-svn: 89711
* We are not using DBG_STOPPOINT anymore.Devang Patel2009-11-211-35/+0
| | | | llvm-svn: 89536
* When generating a vector the really slow way, via loadsDale Johannesen2009-11-211-3/+9
| | | | | | | and stores, handle the case where the element size is not a valid target type correctly (PPC). llvm-svn: 89521
* 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
* Add 8 bit libcalls and make use of them for msp430Anton Korobeynikov2009-11-071-10/+25
| | | | llvm-svn: 86384
* Add a second ValueType argument to isFPImmLegal.Evan Cheng2009-10-281-1/+1
| | | | llvm-svn: 85361
* Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which ↵Evan Cheng2009-10-271-9/+1
| | | | | | returns true if the fp immediate can be natively codegened by target. llvm-svn: 85281
* Remove includes of Support/Compiler.h that are no longer needed after theNick Lewycky2009-10-251-1/+0
| | | | | | VISIBILITY_HIDDEN removal. llvm-svn: 85043
* Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.Nick Lewycky2009-10-251-1/+1
| | | | | | | Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
* -Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixedEvan Cheng2009-10-181-9/+18
| | | | | | | | | | | stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. llvm-svn: 84424
* Only fixed stack objects and spill slots should be get FixedStack ↵Evan Cheng2009-10-181-18/+9
| | | | | | PseudoSourceValue. llvm-svn: 84411
* Revert 84315 for now. Re-thinking the patch.Evan Cheng2009-10-171-7/+7
| | | | llvm-svn: 84321
* Rename getFixedStack to getStackObject. The stack objects represented are notEvan Cheng2009-10-171-7/+7
| | | | | | necessarily fixed. Only those will negative frame indices are "fixed." llvm-svn: 84315
* Delete an obsolete comment.Dan Gohman2009-10-171-2/+1
| | | | llvm-svn: 84300
* Use MDNode * directly as an RecordSourceLine() argument.Devang Patel2009-09-301-3/+2
| | | | llvm-svn: 83182
* Reapply 79977.Devang Patel2009-08-281-4/+4
| | | | | | Use MDNodes to encode debug info in llvm IR. llvm-svn: 80406
* Add extload expansion for f128Anton Korobeynikov2009-08-261-3/+6
| | | | llvm-svn: 80116
* Revert 79977. It causes llvm-gcc bootstrap failures on some platforms.Devang Patel2009-08-261-4/+4
| | | | llvm-svn: 80073
* Update DebugInfo interface to use metadata, instead of special named ↵Devang Patel2009-08-251-4/+4
| | | | | | | | llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) llvm-svn: 79977
* Change Pass::print to take a raw ostream instead of std::ostream,Chris Lattner2009-08-231-1/+4
| | | | | | update all code that this affects. llvm-svn: 79830
* Record variable debug info at ISel time directly.Devang Patel2009-08-221-1/+0
| | | | llvm-svn: 79742
* Be tidy and use a break to exit from a switch block rather thanDan Gohman2009-08-181-0/+1
| | | | | | just falling through the end. llvm-svn: 79383
* Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, andDan Gohman2009-08-181-0/+7
| | | | | | SRA_PARTS, as is done for SRL, SHL, and SRA. llvm-svn: 79380
* Unbreak build. Evan, please make sure my changes are correct.Benjamin Kramer2009-08-151-4/+4
| | | | llvm-svn: 79133
* 80 col violations.Evan Cheng2009-08-151-12/+12
| | | | llvm-svn: 79087
* Allow targets to specify their choice of calling conventions perAnton Korobeynikov2009-08-141-1/+1
| | | | | | | | | | libcall. Take advantage of this in the ARM backend to rectify broken choice of CC when hard float is in effect. PIC16 may want to see if it could be of use in MakePIC16Libcall, which works unchanged. Patch by Sandeep! llvm-svn: 79033
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-2/+3
| | | | llvm-svn: 78948
* Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson2009-08-121-28/+29
| | | | | | infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-111-86/+86
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
OpenPOWER on IntegriCloud