Revert "R600: Use SchedModel enum for is{Trans,Vector}Only functions"

This reverts commit 3f1de26cb5.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187524 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tom Stellard 2013-07-31 20:43:03 +00:00
parent 26db9ecfac
commit af2ea2a4fb
4 changed files with 23 additions and 19 deletions

View File

@ -16,6 +16,7 @@ class InstR600 <dag outs, dag ins, string asm, list<dag> pattern,
: AMDGPUInst <outs, ins, asm, pattern> { : AMDGPUInst <outs, ins, asm, pattern> {
field bits<64> Inst; field bits<64> Inst;
bit TransOnly = 0;
bit Trig = 0; bit Trig = 0;
bit Op3 = 0; bit Op3 = 0;
bit isVector = 0; bit isVector = 0;
@ -36,6 +37,7 @@ class InstR600 <dag outs, dag ins, string asm, list<dag> pattern,
let Pattern = pattern; let Pattern = pattern;
let Itinerary = itin; let Itinerary = itin;
let TSFlags{0} = TransOnly;
let TSFlags{4} = Trig; let TSFlags{4} = Trig;
let TSFlags{5} = Op3; let TSFlags{5} = Op3;

View File

@ -150,23 +150,13 @@ bool R600InstrInfo::isLDSInstr(unsigned Opcode) const {
} }
bool R600InstrInfo::isTransOnly(unsigned Opcode) const { bool R600InstrInfo::isTransOnly(unsigned Opcode) const {
if (ST.hasCaymanISA()) return (get(Opcode).TSFlags & R600_InstFlag::TRANS_ONLY);
return false;
return (get(Opcode).getSchedClass() == AMDGPU::TransALU);
} }
bool R600InstrInfo::isTransOnly(const MachineInstr *MI) const { bool R600InstrInfo::isTransOnly(const MachineInstr *MI) const {
return isTransOnly(MI->getOpcode()); return isTransOnly(MI->getOpcode());
} }
bool R600InstrInfo::isVectorOnly(unsigned Opcode) const {
return (get(Opcode).getSchedClass() == AMDGPU::VecALU);
}
bool R600InstrInfo::isVectorOnly(const MachineInstr *MI) const {
return isVectorOnly(MI->getOpcode());
}
bool R600InstrInfo::usesVertexCache(unsigned Opcode) const { bool R600InstrInfo::usesVertexCache(unsigned Opcode) const {
return ST.hasVertexCache() && IS_VTX(get(Opcode)); return ST.hasVertexCache() && IS_VTX(get(Opcode));
} }

View File

@ -68,8 +68,6 @@ namespace llvm {
bool isTransOnly(unsigned Opcode) const; bool isTransOnly(unsigned Opcode) const;
bool isTransOnly(const MachineInstr *MI) const; bool isTransOnly(const MachineInstr *MI) const;
bool isVectorOnly(unsigned Opcode) const;
bool isVectorOnly(const MachineInstr *MI) const;
bool usesVertexCache(unsigned Opcode) const; bool usesVertexCache(unsigned Opcode) const;
bool usesVertexCache(const MachineInstr *MI) const; bool usesVertexCache(const MachineInstr *MI) const;

View File

@ -909,16 +909,12 @@ class CNDE_Common <bits<5> inst> : R600_3OP <
class CNDGT_Common <bits<5> inst> : R600_3OP < class CNDGT_Common <bits<5> inst> : R600_3OP <
inst, "CNDGT", inst, "CNDGT",
[(set f32:$dst, (selectcc f32:$src0, FP_ZERO, f32:$src1, f32:$src2, COND_GT))] [(set f32:$dst, (selectcc f32:$src0, FP_ZERO, f32:$src1, f32:$src2, COND_GT))]
> { >;
let Itinerary = VecALU;
}
class CNDGE_Common <bits<5> inst> : R600_3OP < class CNDGE_Common <bits<5> inst> : R600_3OP <
inst, "CNDGE", inst, "CNDGE",
[(set f32:$dst, (selectcc f32:$src0, FP_ZERO, f32:$src1, f32:$src2, COND_GE))] [(set f32:$dst, (selectcc f32:$src0, FP_ZERO, f32:$src1, f32:$src2, COND_GE))]
> { >;
let Itinerary = VecALU;
}
let isCodeGenOnly = 1, isPseudo = 1, Namespace = "AMDGPU" in { let isCodeGenOnly = 1, isPseudo = 1, Namespace = "AMDGPU" in {
@ -988,30 +984,35 @@ multiclass CUBE_Common <bits<11> inst> {
class EXP_IEEE_Common <bits<11> inst> : R600_1OP_Helper < class EXP_IEEE_Common <bits<11> inst> : R600_1OP_Helper <
inst, "EXP_IEEE", fexp2 inst, "EXP_IEEE", fexp2
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class FLT_TO_INT_Common <bits<11> inst> : R600_1OP_Helper < class FLT_TO_INT_Common <bits<11> inst> : R600_1OP_Helper <
inst, "FLT_TO_INT", fp_to_sint inst, "FLT_TO_INT", fp_to_sint
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class INT_TO_FLT_Common <bits<11> inst> : R600_1OP_Helper < class INT_TO_FLT_Common <bits<11> inst> : R600_1OP_Helper <
inst, "INT_TO_FLT", sint_to_fp inst, "INT_TO_FLT", sint_to_fp
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class FLT_TO_UINT_Common <bits<11> inst> : R600_1OP_Helper < class FLT_TO_UINT_Common <bits<11> inst> : R600_1OP_Helper <
inst, "FLT_TO_UINT", fp_to_uint inst, "FLT_TO_UINT", fp_to_uint
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class UINT_TO_FLT_Common <bits<11> inst> : R600_1OP_Helper < class UINT_TO_FLT_Common <bits<11> inst> : R600_1OP_Helper <
inst, "UINT_TO_FLT", uint_to_fp inst, "UINT_TO_FLT", uint_to_fp
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
@ -1022,6 +1023,7 @@ class LOG_CLAMPED_Common <bits<11> inst> : R600_1OP <
class LOG_IEEE_Common <bits<11> inst> : R600_1OP_Helper < class LOG_IEEE_Common <bits<11> inst> : R600_1OP_Helper <
inst, "LOG_IEEE", flog2 inst, "LOG_IEEE", flog2
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
@ -1031,61 +1033,72 @@ class ASHR_Common <bits<11> inst> : R600_2OP_Helper <inst, "ASHR", sra>;
class MULHI_INT_Common <bits<11> inst> : R600_2OP_Helper < class MULHI_INT_Common <bits<11> inst> : R600_2OP_Helper <
inst, "MULHI_INT", mulhs inst, "MULHI_INT", mulhs
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class MULHI_UINT_Common <bits<11> inst> : R600_2OP_Helper < class MULHI_UINT_Common <bits<11> inst> : R600_2OP_Helper <
inst, "MULHI", mulhu inst, "MULHI", mulhu
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class MULLO_INT_Common <bits<11> inst> : R600_2OP_Helper < class MULLO_INT_Common <bits<11> inst> : R600_2OP_Helper <
inst, "MULLO_INT", mul inst, "MULLO_INT", mul
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class MULLO_UINT_Common <bits<11> inst> : R600_2OP <inst, "MULLO_UINT", []> { class MULLO_UINT_Common <bits<11> inst> : R600_2OP <inst, "MULLO_UINT", []> {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class RECIP_CLAMPED_Common <bits<11> inst> : R600_1OP < class RECIP_CLAMPED_Common <bits<11> inst> : R600_1OP <
inst, "RECIP_CLAMPED", [] inst, "RECIP_CLAMPED", []
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class RECIP_IEEE_Common <bits<11> inst> : R600_1OP < class RECIP_IEEE_Common <bits<11> inst> : R600_1OP <
inst, "RECIP_IEEE", [(set f32:$dst, (fdiv FP_ONE, f32:$src0))] inst, "RECIP_IEEE", [(set f32:$dst, (fdiv FP_ONE, f32:$src0))]
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class RECIP_UINT_Common <bits<11> inst> : R600_1OP_Helper < class RECIP_UINT_Common <bits<11> inst> : R600_1OP_Helper <
inst, "RECIP_UINT", AMDGPUurecip inst, "RECIP_UINT", AMDGPUurecip
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class RECIPSQRT_CLAMPED_Common <bits<11> inst> : R600_1OP_Helper < class RECIPSQRT_CLAMPED_Common <bits<11> inst> : R600_1OP_Helper <
inst, "RECIPSQRT_CLAMPED", int_AMDGPU_rsq inst, "RECIPSQRT_CLAMPED", int_AMDGPU_rsq
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class RECIPSQRT_IEEE_Common <bits<11> inst> : R600_1OP < class RECIPSQRT_IEEE_Common <bits<11> inst> : R600_1OP <
inst, "RECIPSQRT_IEEE", [] inst, "RECIPSQRT_IEEE", []
> { > {
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class SIN_Common <bits<11> inst> : R600_1OP < class SIN_Common <bits<11> inst> : R600_1OP <
inst, "SIN", [(set f32:$dst, (SIN_HW f32:$src0))]>{ inst, "SIN", [(set f32:$dst, (SIN_HW f32:$src0))]>{
let Trig = 1; let Trig = 1;
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
class COS_Common <bits<11> inst> : R600_1OP < class COS_Common <bits<11> inst> : R600_1OP <
inst, "COS", [(set f32:$dst, (COS_HW f32:$src0))]> { inst, "COS", [(set f32:$dst, (COS_HW f32:$src0))]> {
let Trig = 1; let Trig = 1;
let TransOnly = 1;
let Itinerary = TransALU; let Itinerary = TransALU;
} }
@ -1467,6 +1480,7 @@ let hasSideEffects = 1 in {
def FLT_TO_INT_eg : FLT_TO_INT_Common<0x50> { def FLT_TO_INT_eg : FLT_TO_INT_Common<0x50> {
let Pattern = []; let Pattern = [];
let TransOnly = 0;
let Itinerary = AnyALU; let Itinerary = AnyALU;
} }