llvm-6502/include/llvm/CodeGen
Nate Begeman b706d29f9c PR2957
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
as the shuffle mask.  A value of -1 represents UNDEF.

In addition to eliminating the creation of illegal BUILD_VECTORS just to 
represent shuffle masks, we are better about canonicalizing the shuffle mask,
resulting in substantially better code for some classes of shuffles.

A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-24 03:42:54 +00:00
..
AsmPrinter.h Pass in the std::string parameter instead of returning it by value. 2009-04-10 00:12:49 +00:00
BreakCriticalMachineEdge.h
CallingConvLower.h Clean up formatting, remove trailing whitespace, fix comment typos and 2009-04-17 20:35:10 +00:00
DAGISelHeader.h Generalize one of the SelectionDAG::ReplaceAllUsesWith overloads 2009-04-15 20:06:30 +00:00
DebugLoc.h
DwarfWriter.h Construct and emit DW_TAG_inlined_subroutine DIEs for inlined subroutine scopes (only in FastISel mode). 2009-04-15 00:10:26 +00:00
ELFRelocation.h
FastISel.h If FastISel is run and it has known DebugLoc then use it. 2009-04-16 01:33:10 +00:00
FileWriters.h
GCMetadata.h
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
LatencyPriorityQueue.h
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h Add a new LiveInterval::overlaps(). It checks if the live interval overlaps a range specified by [Start, End). 2009-04-18 08:52:15 +00:00
LiveIntervalAnalysis.h It has finally happened. Spiller is now using live interval info. 2009-04-21 22:46:52 +00:00
LiveStackAnalysis.h
LiveVariables.h
MachineBasicBlock.h Reapply 68073, with fixes. EH Landing-pad basic blocks are not 2009-03-31 18:39:13 +00:00
MachineCodeEmitter.h
MachineConstantPool.h Use CHAR_BIT instead of hard-coding 8 in several places where it 2009-04-01 18:45:54 +00:00
MachineDominators.h
MachineFrameInfo.h Fix a bunch of Doxygen syntax issues. Escape special characters, 2009-03-03 02:55:14 +00:00
MachineFunction.h Move duplicated AddLiveIn function from X86 and ARM backends to be a method 2009-04-20 18:36:57 +00:00
MachineFunctionPass.h Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
MachineInstr.h Fix pr3954. The register scavenger asserts for inline assembly with 2009-04-09 17:16:43 +00:00
MachineInstrBuilder.h
MachineJumpTableInfo.h Move MachineJumpTableInfo::ReplaceMBBInJumpTables out of line. 2009-04-15 01:18:49 +00:00
MachineLocation.h
MachineLoopInfo.h
MachineMemOperand.h
MachineModuleInfo.h DebugLabelFolder ruthlessly deletes redundant labels. However, sometimes the redundant labels is referenced by debug info somewhere else. This patch provies a way so that dwarf writer can mark labels as used. 2009-04-10 18:58:59 +00:00
MachineOperand.h Give RemoveRegOperandFromRegInfo a comment and move the 2009-04-15 01:17:37 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Move MachineRegisterInfo::setRegClass out of line. 2009-04-15 01:19:35 +00:00
MachineRelocation.h
MachORelocation.h
Passes.h
PseudoSourceValue.h
RegAllocRegistry.h
RegisterCoalescer.h Fix a bunch of Doxygen syntax issues. Escape special characters, 2009-03-03 02:55:14 +00:00
RegisterScavenging.h
RuntimeLibcalls.h
ScheduleDAG.h Add a new bit to SUnit to record whether a node has implicit physreg 2009-03-23 16:10:52 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h
SelectionDAG.h PR2957 2009-04-24 03:42:54 +00:00
SelectionDAGISel.h
SelectionDAGNodes.h PR2957 2009-04-24 03:42:54 +00:00
ValueTypes.h Remove the SimpleTy enumerated type field from the MVT 2009-04-19 06:23:05 +00:00
ValueTypes.td