1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/include/llvm/CodeGen
Craig Topper 1cf3918f57 [SelectionDAG] Teach simplifyDemandedBits to handle shifts by constant splat vectors
This teach simplifyDemandedBits to handle constant splat vector shifts.

This required changing some uses of getZExtValue to getLimitedValue since we can't rely on legalization using getShiftAmountTy for the shift amount.

I believe there may have been a bug in the ((X << C1) >>u ShAmt) handling where we didn't check if the inner shift was too large. I've fixed that here.

I had to add new patterns to ARM because the zext/sext the patterns were trying to look for got turned into an any_extend with this patch. Happy to split that out too, but not sure how to test without this change.

Differential Revision: https://reviews.llvm.org/D37665

llvm-svn: 314139
2017-09-25 19:26:08 +00:00
..
GlobalISel [GISel]: Add a clean up combiner during legalization. 2017-08-30 19:32:59 +00:00
MIRParser CodeGen: Refactor MIR parsing 2017-06-06 00:44:35 +00:00
PBQP [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
Analysis.h
AsmPrinter.h Change encodeU/SLEB128 to pad to certain number of bytes 2017-09-15 20:34:47 +00:00
AtomicExpandUtils.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
BasicTTIImpl.h [TargetTransformInfo] Add a new public interface getInstructionCost 2017-09-08 22:29:17 +00:00
CalcSpillWeights.h
CallingConvLower.h
CommandFlags.h Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00
DAGCombine.h
DFAPacketizer.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
DIE.h Mark dump() methods as const. NFC 2017-06-21 22:19:17 +00:00
DIEValue.def
DwarfStringPoolEntry.h
EdgeBundles.h
ExecutionDepsFix.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
ExpandReductions.h Add a late IR expansion pass for the experimental reduction intrinsics. 2017-05-10 09:42:49 +00:00
FastISel.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
FaultMaps.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
FunctionLoweringInfo.h ISel: Fix FastISel of swifterror values 2017-06-15 17:34:42 +00:00
GCMetadata.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCMetadataPrinter.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCs.h
GCStrategy.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
IntrinsicLowering.h
ISDOpcodes.h Add llvm.codeview.annotation to implement MSVC __annotation 2017-09-05 20:14:58 +00:00
LatencyPriorityQueue.h Remove usages of deprecated std::unary_function and std::binary_function. 2017-09-14 18:33:25 +00:00
LazyMachineBlockFrequencyInfo.h
LexicalScopes.h Mark dump() methods as const. NFC 2017-06-21 22:19:17 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
LiveIntervalAnalysis.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LiveIntervalUnion.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LivePhysRegs.h [IfConversion] More simple, correct dead/kill liveness handling 2017-09-14 15:53:11 +00:00
LiveRangeEdit.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LiveRegMatrix.h
LiveRegUnits.h Preserve existing regs when adding pristines to LivePhysRegs/LiveRegUnits 2017-09-08 16:29:50 +00:00
LiveStackAnalysis.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LiveVariables.h
LowLevelType.h
MachineBasicBlock.h Remove usages of deprecated std::unary_function and std::binary_function. 2017-09-14 18:33:25 +00:00
MachineBlockFrequencyInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
MachineBranchProbabilityInfo.h
MachineCombinerPattern.h [AArch64][MachineCombine] Fold FNMUL+FSUB -> FNMADD. 2017-05-11 20:07:24 +00:00
MachineConstantPool.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineDominanceFrontier.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineDominators.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineFrameInfo.h Add "Restored" flag to CalleeSavedInfo 2017-08-10 16:17:32 +00:00
MachineFunction.h Add llvm.codeview.annotation to implement MSVC __annotation 2017-09-05 20:14:58 +00:00
MachineFunctionPass.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MachineInstr.h Revert r313343 "[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs." 2017-09-15 18:40:26 +00:00
MachineInstrBuilder.h [DebugInfo] Add missing DW_OP_deref when an NRVO pointer is spilled 2017-09-15 21:49:56 +00:00
MachineInstrBundle.h
MachineInstrBundleIterator.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineJumpTableInfo.h
MachineLoopInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineMemOperand.h Add an ID field to StackObjects 2017-07-20 21:03:45 +00:00
MachineModuleInfo.h CodeGen: Refactor MIR parsing 2017-06-06 00:44:35 +00:00
MachineModuleInfoImpls.h [WebAssembly] Use __stack_pointer global when writing wasm binary 2017-06-16 23:59:10 +00:00
MachineOperand.h Pacify gcc's -Wnum-compare after r313775 2017-09-20 18:00:02 +00:00
MachineOptimizationRemarkEmitter.h This patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352 2017-09-15 20:10:09 +00:00
MachinePassRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MachinePostDominators.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineRegionInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
MachineRegisterInfo.h LiveIntervalAnalysis: Fix alias regunit reserved definition 2017-09-01 18:36:26 +00:00
MachineScheduler.h [SystemZ, MachineScheduler] Improve post-RA scheduling. 2017-08-17 08:33:44 +00:00
MachineSSAUpdater.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-11 23:00:48 +00:00
MachineTraceMetrics.h Recommit [MachineCombiner] Update instruction depths incrementally for large BBs. 2017-09-20 11:54:37 +00:00
MachineValueType.h Revert r313782 "[TableGen] Add a DenseMapInfo for MachineValueType." 2017-09-21 04:54:59 +00:00
MachORelocation.h
MacroFusion.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MIRPrinter.h
MIRYamlMapping.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
ParallelCG.h
Passes.h Update branch coalescing to be a PowerPC specific pass 2017-09-12 18:39:11 +00:00
PBQPRAConstraint.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
PreISelIntrinsicLowering.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
PseudoSourceValue.h Add AddresSpace to PseudoSourceValue. 2017-09-14 20:53:51 +00:00
RegAllocPBQP.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
RegAllocRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
RegisterClassInfo.h
RegisterPressure.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
RegisterScavenging.h RegScavenging: Add scavengeRegisterBackwards() 2017-06-17 02:08:18 +00:00
RegisterUsageInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
ResourcePriorityQueue.h Remove usages of deprecated std::unary_function and std::binary_function. 2017-09-14 18:33:25 +00:00
RuntimeLibcalls.def Move Runtime libcall definitions to a .def file 2017-07-19 21:53:30 +00:00
RuntimeLibcalls.h Move Runtime libcall definitions to a .def file 2017-07-19 21:53:30 +00:00
ScheduleDAG.h [CodeGen] Add dependency printer 2017-07-12 15:30:59 +00:00
ScheduleDAGInstrs.h [SystemZ, MachineScheduler] Improve post-RA scheduling. 2017-08-17 08:33:44 +00:00
ScheduleDAGMutation.h
ScheduleDFS.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
ScoreboardHazardRecognizer.h
SelectionDAG.h Revert r313343 "[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs." 2017-09-15 18:40:26 +00:00
SelectionDAGAddressAnalysis.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
SelectionDAGISel.h
SelectionDAGNodes.h [SelectionDAG] Teach simplifyDemandedBits to handle shifts by constant splat vectors 2017-09-25 19:26:08 +00:00
SelectionDAGTargetInfo.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
SlotIndexes.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
StackMaps.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-03 00:22:41 +00:00
StackProtector.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
TailDuplicator.h Add test case for r311511 2017-08-23 03:17:59 +00:00
TargetLoweringObjectFileImpl.h IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
TargetPassConfig.h [TargetPassConfig] Feature generic options to setup start/stop-after/before 2017-07-31 18:24:07 +00:00
TargetSchedule.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
UnreachableBlockElim.h
ValueTypes.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
ValueTypes.td [MVT] add v1i1 MVT 2017-05-18 11:29:41 +00:00
VirtRegMap.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
WinEHFuncInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-03 00:22:41 +00:00