From 5e4ebdaab1f8271b2fe922bcb2e2f2f6f537faaa Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Fri, 25 Jan 2019 04:54:00 +0000 Subject: [PATCH] AMDGPU/GlobalISel: Remove leftover setAction Also move G_GEP actions together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352168 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index 55b06aabbff..d5c176a7e21 100644 --- a/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -93,9 +93,6 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST, setAction({G_BRCOND, S1}, Legal); - setAction({G_ASHR, S32}, Legal); - setAction({G_ASHR, 1, S32}, Legal); - getActionDefinitionsBuilder({G_ADD, G_SUB, G_MUL, G_UMULH, G_SMULH}) .legalFor({S32}) .scalarize(0); @@ -186,6 +183,14 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST, setAction({G_GEP, 1, IdxTy}, Legal); } + // FIXME: When RegBankSelect inserts copies, it will only create new registers + // with scalar types. This means we can end up with G_LOAD/G_STORE/G_GEP + // instruction with scalar types for their pointer operands. In assert builds, + // the instruction selector will assert if it sees a generic instruction which + // isn't legal, so we need to tell it that scalar types are legal for pointer + // operands + setAction({G_GEP, S64}, Legal); + setAction({G_BLOCK_ADDR, CodePtr}, Legal); getActionDefinitionsBuilder({G_ICMP, G_FCMP}) @@ -288,14 +293,6 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST, Shifts.clampScalar(0, S32, S64); Shifts.clampScalar(1, S32, S32); - // FIXME: When RegBankSelect inserts copies, it will only create new - // registers with scalar types. This means we can end up with - // G_LOAD/G_STORE/G_GEP instruction with scalar types for their pointer - // operands. In assert builds, the instruction selector will assert - // if it sees a generic instruction which isn't legal, so we need to - // tell it that scalar types are legal for pointer operands - setAction({G_GEP, S64}, Legal); - for (unsigned Op : {G_EXTRACT_VECTOR_ELT, G_INSERT_VECTOR_ELT}) { unsigned VecTypeIdx = Op == G_EXTRACT_VECTOR_ELT ? 1 : 0; unsigned EltTypeIdx = Op == G_EXTRACT_VECTOR_ELT ? 0 : 1; -- 2.50.1