From c2fb47f16bf9cc69146b8fca82a86ba9ff3e4f52 Mon Sep 17 00:00:00 2001 From: Simon Atanasyan Date: Mon, 1 Jul 2019 21:24:51 +0000 Subject: [PATCH] [mips] Add missing schedinfo for LONG_BRANCH_* instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364848 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Mips/Mips64InstrInfo.td | 22 +++++++++++++++------- lib/Target/Mips/MipsInstrInfo.td | 16 ++++++++++++---- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/Target/Mips/Mips64InstrInfo.td b/lib/Target/Mips/Mips64InstrInfo.td index 88b71bb413a..5dc0ad85ae3 100644 --- a/lib/Target/Mips/Mips64InstrInfo.td +++ b/lib/Target/Mips/Mips64InstrInfo.td @@ -417,17 +417,25 @@ let isCodeGenOnly = 1, rs = 0, shamt = 0 in { // explanation. // Expands to: lui $dst, %highest/%higher/%hi/%lo($tgt) -def LONG_BRANCH_LUi2Op_64 : PseudoSE<(outs GPR64Opnd:$dst), - (ins brtarget:$tgt), []>, GPR_64; +def LONG_BRANCH_LUi2Op_64 : + PseudoSE<(outs GPR64Opnd:$dst), (ins brtarget:$tgt), []>, GPR_64 { + bit hasNoSchedulingInfo = 1; +} // Expands to: addiu $dst, %highest/%higher/%hi/%lo($tgt) -def LONG_BRANCH_DADDiu2Op : PseudoSE<(outs GPR64Opnd:$dst), - (ins GPR64Opnd:$src, brtarget:$tgt), []>, GPR_64; - +def LONG_BRANCH_DADDiu2Op : + PseudoSE<(outs GPR64Opnd:$dst), (ins GPR64Opnd:$src, brtarget:$tgt), []>, + GPR_64 { + bit hasNoSchedulingInfo = 1; +} // Expands to: daddiu $dst, $src, %PART($tgt - $baltgt) // where %PART may be %hi or %lo, depending on the relocation kind // that $tgt is annotated with. -def LONG_BRANCH_DADDiu : PseudoSE<(outs GPR64Opnd:$dst), - (ins GPR64Opnd:$src, brtarget:$tgt, brtarget:$baltgt), []>, GPR_64; +def LONG_BRANCH_DADDiu : + PseudoSE<(outs GPR64Opnd:$dst), + (ins GPR64Opnd:$src, brtarget:$tgt, brtarget:$baltgt), []>, + GPR_64 { + bit hasNoSchedulingInfo = 1; +} // Cavium Octeon cnMIPS instructions let DecoderNamespace = "CnMips", diff --git a/lib/Target/Mips/MipsInstrInfo.td b/lib/Target/Mips/MipsInstrInfo.td index 0245627441a..9bf81c642e9 100644 --- a/lib/Target/Mips/MipsInstrInfo.td +++ b/lib/Target/Mips/MipsInstrInfo.td @@ -2014,17 +2014,25 @@ let isPseudo = 1, isCodeGenOnly = 1, hasNoSchedulingInfo = 1 in { // Expands to: lui $dst, %highest/%higher/%hi/%lo($tgt - $baltgt) def LONG_BRANCH_LUi : PseudoSE<(outs GPR32Opnd:$dst), - (ins brtarget:$tgt, brtarget:$baltgt), []>; + (ins brtarget:$tgt, brtarget:$baltgt), []> { + bit hasNoSchedulingInfo = 1; +} // Expands to: lui $dst, highest/%higher/%hi/%lo($tgt) def LONG_BRANCH_LUi2Op : PseudoSE<(outs GPR32Opnd:$dst), - (ins brtarget:$tgt), []>; + (ins brtarget:$tgt), []> { + bit hasNoSchedulingInfo = 1; +} // Expands to: addiu $dst, $src, %highest/%higher/%hi/%lo($tgt - $baltgt) def LONG_BRANCH_ADDiu : PseudoSE<(outs GPR32Opnd:$dst), - (ins GPR32Opnd:$src, brtarget:$tgt, brtarget:$baltgt), []>; + (ins GPR32Opnd:$src, brtarget:$tgt, brtarget:$baltgt), []> { + bit hasNoSchedulingInfo = 1; +} // Expands to: addiu $dst, $src, %highest/%higher/%hi/%lo($tgt) def LONG_BRANCH_ADDiu2Op : PseudoSE<(outs GPR32Opnd:$dst), - (ins GPR32Opnd:$src, brtarget:$tgt), []>; + (ins GPR32Opnd:$src, brtarget:$tgt), []> { + bit hasNoSchedulingInfo = 1; +} //===----------------------------------------------------------------------===// // Instruction definition -- 2.50.1