mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-10 04:33:40 +00:00
R600: Factorize maximum alu per clause in a single location
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178667 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1ac8f9073c
commit
dae2a20a56
@ -201,7 +201,7 @@ private:
|
|||||||
!SubstituteKCacheBank(I, KCacheBanks))
|
!SubstituteKCacheBank(I, KCacheBanks))
|
||||||
break;
|
break;
|
||||||
AluInstCount += OccupiedDwords(I);
|
AluInstCount += OccupiedDwords(I);
|
||||||
if (AluInstCount > 124)
|
if (AluInstCount > TII->getMaxAlusPerClause())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
unsigned Opcode = PushBeforeModifier ?
|
unsigned Opcode = PushBeforeModifier ?
|
||||||
|
@ -645,6 +645,9 @@ const TargetRegisterClass *R600InstrInfo::getSuperIndirectRegClass() const {
|
|||||||
return &AMDGPU::IndirectRegRegClass;
|
return &AMDGPU::IndirectRegRegClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned R600InstrInfo::getMaxAlusPerClause() const {
|
||||||
|
return 115;
|
||||||
|
}
|
||||||
|
|
||||||
MachineInstrBuilder R600InstrInfo::buildDefaultInstruction(MachineBasicBlock &MBB,
|
MachineInstrBuilder R600InstrInfo::buildDefaultInstruction(MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I,
|
MachineBasicBlock::iterator I,
|
||||||
|
@ -145,6 +145,7 @@ namespace llvm {
|
|||||||
|
|
||||||
virtual const TargetRegisterClass *getSuperIndirectRegClass() const;
|
virtual const TargetRegisterClass *getSuperIndirectRegClass() const;
|
||||||
|
|
||||||
|
unsigned getMaxAlusPerClause() const;
|
||||||
|
|
||||||
///buildDefaultInstruction - This function returns a MachineInstr with
|
///buildDefaultInstruction - This function returns a MachineInstr with
|
||||||
/// all the instruction modifiers initialized to their default values.
|
/// all the instruction modifiers initialized to their default values.
|
||||||
|
@ -37,7 +37,7 @@ void R600SchedStrategy::initialize(ScheduleDAGMI *dag) {
|
|||||||
CurInstKind = IDOther;
|
CurInstKind = IDOther;
|
||||||
CurEmitted = 0;
|
CurEmitted = 0;
|
||||||
OccupedSlotsMask = 15;
|
OccupedSlotsMask = 15;
|
||||||
InstKindLimit[IDAlu] = 120; // 120 minus 8 for security
|
InstKindLimit[IDAlu] = TII->getMaxAlusPerClause();
|
||||||
|
|
||||||
|
|
||||||
const AMDGPUSubtarget &ST = DAG->TM.getSubtarget<AMDGPUSubtarget>();
|
const AMDGPUSubtarget &ST = DAG->TM.getSubtarget<AMDGPUSubtarget>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user