1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/lib/Target/AMDGPU
Nicolai Haehnle a64a4772e8 TableGen: Check the dynamic type of !cast<Rec>(string)
Summary:
The docs already claim that this happens, but so far it hasn't. As a
consequence, existing TableGen files get this wrong a lot, but luckily
the fixes are all reasonably straightforward.

To make this work with all the existing forms of self-references (since
the true type of a record is only built up over time), the lookup of
self-references in !cast is delayed until the final resolving step.

Change-Id: If5923a72a252ba2fbc81a889d59775df0ef31164

Reviewers: arsenm, craig.topper, tra, MartinO

Subscribers: wdng, javed.absar, llvm-commits

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

llvm-svn: 327849
2018-03-19 14:14:20 +00:00
..
AsmParser [AMDGPU][MC][GFX8] Added BUFFER_STORE_LDS_DWORD Instruction 2018-03-12 17:29:24 +00:00
Disassembler [AMDGPU][MC] Corrected GATHER4 opcodes 2018-03-12 15:03:34 +00:00
InstPrinter [AMDGPU][MC][GFX8][GFX9][DISASSEMBLER] Added "_e32" suffix to 32-bit VINTRP opcodes 2018-03-16 16:38:04 +00:00
MCTargetDesc AMDGPU: Remove unused private member of AMDGPUTargetELFStreamer 2018-02-16 23:04:11 +00:00
TargetInfo
Utils [AMDGPU] Add default ISA version targets 2018-03-06 18:33:55 +00:00
AMDGPU.h [AMDGPU] Change constant addr space to 4 2018-02-13 18:00:25 +00:00
AMDGPU.td AMDGPU: Add fast fmaf feature to gfx702 2018-02-27 21:46:15 +00:00
AMDGPUAliasAnalysis.cpp [AMDGPU] Change constant addr space to 4 2018-02-13 18:00:25 +00:00
AMDGPUAliasAnalysis.h
AMDGPUAlwaysInlinePass.cpp
AMDGPUAnnotateKernelFeatures.cpp
AMDGPUAnnotateUniformValues.cpp
AMDGPUArgumentUsageInfo.cpp [CodeGen] Rename functions PrintReg* to printReg* 2017-11-28 12:42:37 +00:00
AMDGPUArgumentUsageInfo.h
AMDGPUAsmPrinter.cpp [AMDGPU] do not generate .AMDGPU.config for amdpal os type 2018-02-06 13:39:38 +00:00
AMDGPUAsmPrinter.h [AMDGPU] add labels to +DumpCode output 2017-12-08 14:09:34 +00:00
AMDGPUCallingConv.td
AMDGPUCallLowering.cpp [AMDGPU] Change constant addr space to 4 2018-02-13 18:00:25 +00:00
AMDGPUCallLowering.h
AMDGPUCodeGenPrepare.cpp Reapply "AMDGPU: Add 32-bit constant address space" 2018-02-09 16:57:57 +00:00
AMDGPUFrameLowering.cpp
AMDGPUFrameLowering.h
AMDGPUGenRegisterBankInfo.def AMDGPU/GlobalISel: Use a more correct getValueMapping 2018-03-01 21:08:51 +00:00
AMDGPUInline.cpp
AMDGPUInstrInfo.cpp Reapply "AMDGPU: Add 32-bit constant address space" 2018-02-09 16:57:57 +00:00
AMDGPUInstrInfo.h AMDGPU: Fix layering issue 2018-02-09 16:57:48 +00:00
AMDGPUInstrInfo.td AMDGPU: Add intrinsics llvm.amdgcn.cvt.{pknorm.i16, pknorm.u16, pk.i16, pk.u16} 2018-01-31 20:18:04 +00:00
AMDGPUInstructions.td [AMDGPU] Supported ds_write_b128 generation. 2018-03-16 18:12:00 +00:00
AMDGPUInstructionSelector.cpp Reapply "AMDGPU: Add 32-bit constant address space" 2018-02-09 16:57:57 +00:00
AMDGPUInstructionSelector.h [globalisel][tablegen] Generate rule coverage and use it to identify untested rules 2017-11-16 00:46:35 +00:00
AMDGPUIntrinsicInfo.cpp
AMDGPUIntrinsicInfo.h
AMDGPUIntrinsics.td
AMDGPUISelDAGToDAG.cpp Revert "[DAG, X86] Revert r327197 "Revert r327170, r327171, r327172"" 2018-03-17 19:24:54 +00:00
AMDGPUISelLowering.cpp Pass Divergence Analysis data to Selection DAG to drive divergence 2018-03-05 15:12:21 +00:00
AMDGPUISelLowering.h AMDGPU: Fix build warning about override 2018-03-05 16:25:10 +00:00
AMDGPULegalizerInfo.cpp AMDGPU/GlobalISel: RegBankSelect for basic int ops 2018-03-19 14:07:23 +00:00
AMDGPULegalizerInfo.h AMDGPU/GlobalISel: Pass subtarget + TM to LegalizerInfo 2018-03-08 16:24:16 +00:00
AMDGPULibCalls.cpp Make helpers static. NFC. 2017-11-24 14:55:41 +00:00
AMDGPULibFunc.cpp
AMDGPULibFunc.h
AMDGPULowerIntrinsics.cpp
AMDGPUMachineCFGStructurizer.cpp [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
AMDGPUMachineFunction.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
AMDGPUMachineFunction.h
AMDGPUMachineModuleInfo.cpp
AMDGPUMachineModuleInfo.h
AMDGPUMacroFusion.cpp
AMDGPUMacroFusion.h
AMDGPUMCInstLower.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
AMDGPUMCInstLower.h
AMDGPUOpenCLEnqueuedBlockLowering.cpp [AMDGPU] Fix lowering enqueue kernel when kernel has no name 2018-03-12 16:34:06 +00:00
AMDGPUOpenCLImageTypeLoweringPass.cpp
AMDGPUPromoteAlloca.cpp AMDGPU/SI: Extend promoting alloca to vector to arrays of up to 16 elements 2018-02-16 19:14:17 +00:00
AMDGPUPTNote.h
AMDGPURegAsmNames.inc.cpp
AMDGPURegisterBankInfo.cpp AMDGPU/GlobalISel: RegBankSelect for basic int ops 2018-03-19 14:07:23 +00:00
AMDGPURegisterBankInfo.h AMDGPU/GlobalISel: Define instruction mapping for G_OR 2018-03-01 21:25:25 +00:00
AMDGPURegisterBanks.td AMDGPU/GlobalISel: Define InstrMappings for G_ICMP 2018-03-01 19:27:10 +00:00
AMDGPURegisterInfo.cpp [AMDGPU] Make sure all super regs of reserved regs are marked reserved. 2018-01-24 18:09:53 +00:00
AMDGPURegisterInfo.h [AMDGPU] Return true in enableMultipleCopyHints(). 2018-02-17 10:00:28 +00:00
AMDGPURegisterInfo.td
AMDGPURewriteOutArguments.cpp
AMDGPUSubtarget.cpp AMDGPU/GlobalISel: Pass subtarget + TM to LegalizerInfo 2018-03-08 16:24:16 +00:00
AMDGPUSubtarget.h [AMDGPU] Supported ds_read_b128 generation; Widened vector length for local address-space. 2018-03-09 17:41:39 +00:00
AMDGPUTargetMachine.cpp [AMDGPU] Change constant addr space to 4 2018-02-13 18:00:25 +00:00
AMDGPUTargetMachine.h (Re-landing) Expose a TargetMachine::getTargetTransformInfo function 2017-12-22 18:21:59 +00:00
AMDGPUTargetObjectFile.cpp
AMDGPUTargetObjectFile.h
AMDGPUTargetTransformInfo.cpp [AMDGPU] Supported ds_read_b128 generation; Widened vector length for local address-space. 2018-03-09 17:41:39 +00:00
AMDGPUTargetTransformInfo.h [AMDGPU] Increased vector length for global/constant loads. 2018-03-07 17:09:18 +00:00
AMDGPUUnifyDivergentExitNodes.cpp
AMDGPUUnifyMetadata.cpp
AMDILCFGStructurizer.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
AMDKernelCodeT.h
BUFInstructions.td [AMDGPU][MC][GFX8] Added BUFFER_STORE_LDS_DWORD Instruction 2018-03-12 17:29:24 +00:00
CaymanInstructions.td [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
CMakeLists.txt AMDGPU: Partial ILP scheduler port from SelectionDAG to SchedulingDAG (experimental) 2017-11-20 14:35:53 +00:00
DSInstructions.td [AMDGPU] Supported ds_write_b128 generation. 2018-03-16 18:12:00 +00:00
EvergreenInstructions.td AMDGPU: Select BFI patterns with 64-bit ints 2018-02-07 00:21:34 +00:00
FLATInstructions.td [AMDGPU][MC][DISASSEMBLER][GFX9] Corrected decoding of GLOBAL/SCRATCH opcodes 2017-11-27 17:14:35 +00:00
GCNHazardRecognizer.cpp [AMDGPU] Add GCNHazardRecognizer::checkInlineAsmHazards() and GCNHazardRecognizer::checkVALUHazardsHelper(). checkInlineAsmHazards() checks INLINEASM for hazards that we particularly care about (so not exhaustive); this patch adds a check for INLINEASM that defs vregs that hold data-to-be stored by immediately preceding store of more than 8 bytes. If the instr were not within an INLINEASM, this scenario would be handled by checkVALUHazard(). Add checkVALUHazardsHelper(), which will be called by both checkVALUHazards() and checkInlineAsmHazards(). 2017-12-07 20:34:25 +00:00
GCNHazardRecognizer.h [AMDGPU] Add GCNHazardRecognizer::checkInlineAsmHazards() and GCNHazardRecognizer::checkVALUHazardsHelper(). checkInlineAsmHazards() checks INLINEASM for hazards that we particularly care about (so not exhaustive); this patch adds a check for INLINEASM that defs vregs that hold data-to-be stored by immediately preceding store of more than 8 bytes. If the instr were not within an INLINEASM, this scenario would be handled by checkVALUHazard(). Add checkVALUHazardsHelper(), which will be called by both checkVALUHazards() and checkInlineAsmHazards(). 2017-12-07 20:34:25 +00:00
GCNILPSched.cpp AMDGPU: Partial ILP scheduler port from SelectionDAG to SchedulingDAG (experimental) 2017-11-20 14:35:53 +00:00
GCNIterativeScheduler.cpp [NFC] fix trivial typos in comments and documents 2018-01-29 05:17:03 +00:00
GCNIterativeScheduler.h AMDGPU: Partial ILP scheduler port from SelectionDAG to SchedulingDAG (experimental) 2017-11-20 14:35:53 +00:00
GCNMinRegStrategy.cpp
GCNProcessors.td AMDGPU: Bring processors and features in sync with the spec 2018-02-16 21:26:25 +00:00
GCNRegPressure.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
GCNRegPressure.h Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
GCNSchedStrategy.cpp [NFC] fix trivial typos in comments 2018-01-22 05:54:46 +00:00
GCNSchedStrategy.h
LLVMBuild.txt
MIMGInstructions.td [AMDGPU][MC] Corrected GATHER4 opcodes 2018-03-12 15:03:34 +00:00
R600ClauseMergePass.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
R600ControlFlowFinalizer.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
R600Defines.h
R600EmitClauseMarkers.cpp
R600ExpandSpecialInstrs.cpp
R600FrameLowering.cpp
R600FrameLowering.h
R600InstrFormats.td
R600InstrInfo.cpp [AMDGPU] Make sure all super regs of reserved regs are marked reserved. 2018-01-24 18:09:53 +00:00
R600InstrInfo.h [AMDGPU] Make sure all super regs of reserved regs are marked reserved. 2018-01-24 18:09:53 +00:00
R600Instructions.td AMDGPU: Move ADDRIndirect complex pattern into R600Instructions.td 2018-01-29 23:29:26 +00:00
R600Intrinsics.td
R600ISelLowering.cpp AMDGPU/EG: Add a new FeatureFMA and use it to selectively enable FMA instruction 2017-12-04 23:07:28 +00:00
R600ISelLowering.h
R600MachineFunctionInfo.cpp
R600MachineFunctionInfo.h
R600MachineScheduler.cpp
R600MachineScheduler.h
R600OptimizeVectorRegisters.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
R600Packetizer.cpp
R600Processors.td AMDGPU/EG: Add a new FeatureFMA and use it to selectively enable FMA instruction 2017-12-04 23:07:28 +00:00
R600RegisterInfo.cpp [AMDGPU] Make sure all super regs of reserved regs are marked reserved. 2018-01-24 18:09:53 +00:00
R600RegisterInfo.h
R600RegisterInfo.td
R600Schedule.td
R700Instructions.td
SIAnnotateControlFlow.cpp AMDGPU: Error in SIAnnotateControlFlow instead of assert 2018-01-17 16:30:01 +00:00
SIDebuggerInsertNops.cpp
SIDefines.h AMDGPU/SI: Add d16 support for image intrinsics. 2018-01-18 22:08:53 +00:00
SIFixSGPRCopies.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
SIFixVGPRCopies.cpp
SIFixWWMLiveness.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
SIFoldOperands.cpp AMDGPU: Fix crash when constant folding with physreg operand 2018-03-10 16:05:35 +00:00
SIFrameLowering.cpp [AMDGPU] Scratch setup fix on AMDPAL gfx9+ merge shader 2018-02-26 14:46:43 +00:00
SIFrameLowering.h
SIInsertSkips.cpp Fix compiler warning introduced in r325931. NFC. 2018-02-23 19:11:33 +00:00
SIInsertWaitcnts.cpp [AMDGPU] Waitcnt pass: Modify the waitcnt pass to propagate info in the case of a single basic block loop. mergeInputScoreBrackets() does this for us; update it so that it processes the single bb's score bracket when processing the single bb's preds. It is, after all, a pred of itself, so it's score bracket is needed. 2018-03-14 22:04:32 +00:00
SIInsertWaits.cpp [NFC] fix trivial typos in comments 2018-02-22 07:48:29 +00:00
SIInstrFormats.td [MachineOperand][Target] MachineOperand::isRenamable semantics changes 2018-02-23 18:25:08 +00:00
SIInstrInfo.cpp AMDGPU: Don't leave dead illegal VGPR->SGPR copies 2018-03-19 14:07:15 +00:00
SIInstrInfo.h [AMDGPU][MC] Added lds support for MUBUF instructions 2018-02-21 13:13:48 +00:00
SIInstrInfo.td [AMDGPU] Supported ds_write_b128 generation. 2018-03-16 18:12:00 +00:00
SIInstructions.td [AMDGPU][MC][GFX8][GFX9][DISASSEMBLER] Added "_e32" suffix to 32-bit VINTRP opcodes 2018-03-16 16:38:04 +00:00
SIIntrinsics.td
SIISelLowering.cpp [AMDGPU] Supported ds_write_b128 generation. 2018-03-16 18:12:00 +00:00
SIISelLowering.h AMDGPU/SI: Add d16 support for buffer intrinsics. 2018-01-12 21:12:19 +00:00
SILoadStoreOptimizer.cpp AMDGPU: Track physreg uses in SILoadStoreOptimizer 2018-02-23 10:45:56 +00:00
SILowerControlFlow.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
SILowerI1Copies.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
SIMachineFunctionInfo.cpp Reapply "AMDGPU: Add 32-bit constant address space" 2018-02-09 16:57:57 +00:00
SIMachineFunctionInfo.h [AMDGPU] stop buffer_store being moved illegally 2018-02-20 10:03:38 +00:00
SIMachineScheduler.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
SIMachineScheduler.h
SIMemoryLegalizer.cpp [AMDGPU] More descriptive names in the memory legalizer 2018-02-09 06:05:33 +00:00
SIOptimizeExecMasking.cpp [MachineOperand][Target] MachineOperand::isRenamable semantics changes 2018-02-23 18:25:08 +00:00
SIOptimizeExecMaskingPreRA.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
SIPeepholeSDWA.cpp Test commit - change comment slightly. 2018-03-11 03:27:50 +00:00
SIRegisterInfo.cpp [AMDGPU] : fix for the crash in SIRegisterInfo when the regiser class not found 2018-03-01 17:36:43 +00:00
SIRegisterInfo.h [AMDGPU] Make sure all super regs of reserved regs are marked reserved. 2018-01-24 18:09:53 +00:00
SIRegisterInfo.td [AMDGPU][MC][GFX8][GFX9] Added XNACK_MASK support 2018-01-10 14:22:19 +00:00
SISchedule.td
SIShrinkInstructions.cpp [AMDGPU] Shrinking V_SUBBREV_U32 2018-02-24 01:32:32 +00:00
SIWholeQuadMode.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
SMInstructions.td TableGen: Check the dynamic type of !cast<Rec>(string) 2018-03-19 14:14:20 +00:00
SOPInstructions.td
VIInstrFormats.td
VIInstructions.td
VOP1Instructions.td [AMDGPU] Copy impdefs from pseudo to real instructions 2018-01-15 17:55:35 +00:00
VOP2Instructions.td [AMDGPU] added writelane intrinsic 2018-02-28 19:10:32 +00:00
VOP3Instructions.td [AMDGPU] Fixed V_DIV_FIXUP_F16 selection on GFX9 2018-03-09 07:21:43 +00:00
VOP3PInstructions.td
VOPCInstructions.td [AMDGPU][MC] Corrected default values for unused SDWA operands 2018-03-16 15:40:27 +00:00
VOPInstructions.td [AMDGPU][MC] Corrected default values for unused SDWA operands 2018-03-16 15:40:27 +00:00