From: Ana Pazos Date: Thu, 24 Jan 2019 03:00:26 +0000 (+0000) Subject: Revert "[RISCV] Set isAsCheapAsAMove for ADDI, ORI, XORI, LUI" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a049e686b52510f84d0c5e9d24977d6340fc8323;p=llvm Revert "[RISCV] Set isAsCheapAsAMove for ADDI, ORI, XORI, LUI" This reverts commit ccfb060ecb5d7e18ea729455660484d576bde2cc. Some tests need to to fixed before reapplying this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352014 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/RISCV/RISCVInstrInfo.cpp b/lib/Target/RISCV/RISCVInstrInfo.cpp index afa872b4a5c..d99d789fb7e 100644 --- a/lib/Target/RISCV/RISCVInstrInfo.cpp +++ b/lib/Target/RISCV/RISCVInstrInfo.cpp @@ -447,16 +447,3 @@ unsigned RISCVInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const { } } } - -bool RISCVInstrInfo::isAsCheapAsAMove(const MachineInstr &MI) const { - const unsigned Opcode = MI.getOpcode(); - switch(Opcode) { - default: - break; - case RISCV::ADDI: - case RISCV::ORI: - case RISCV::XORI: - return (MI.getOperand(1).isReg() && MI.getOperand(1).getReg() == RISCV::X0); - } - return MI.isAsCheapAsAMove(); -} diff --git a/lib/Target/RISCV/RISCVInstrInfo.h b/lib/Target/RISCV/RISCVInstrInfo.h index ff098e660d1..28a7e2fb2b6 100644 --- a/lib/Target/RISCV/RISCVInstrInfo.h +++ b/lib/Target/RISCV/RISCVInstrInfo.h @@ -78,8 +78,6 @@ public: bool isBranchOffsetInRange(unsigned BranchOpc, int64_t BrOffset) const override; - - bool isAsCheapAsAMove(const MachineInstr &MI) const override; }; } #endif diff --git a/lib/Target/RISCV/RISCVInstrInfo.td b/lib/Target/RISCV/RISCVInstrInfo.td index 9ad7681f2ff..3ba86cfcdfd 100644 --- a/lib/Target/RISCV/RISCVInstrInfo.td +++ b/lib/Target/RISCV/RISCVInstrInfo.td @@ -312,7 +312,7 @@ class Priv funct7> //===----------------------------------------------------------------------===// let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in { -let isReMaterializable = 1, isAsCheapAsAMove = 1 in +let isReMaterializable = 1 in def LUI : RVInstU; @@ -348,13 +348,13 @@ def SW : Store_rri<0b010, "sw">; // ADDI isn't always rematerializable, but isReMaterializable will be used as // a hint which is verified in isReallyTriviallyReMaterializable. -let isReMaterializable = 1, isAsCheapAsAMove = 1 in +let isReMaterializable = 1 in def ADDI : ALU_ri<0b000, "addi">; def SLTI : ALU_ri<0b010, "slti">; def SLTIU : ALU_ri<0b011, "sltiu">; -let isReMaterializable = 1, isAsCheapAsAMove = 1 in { +let isReMaterializable = 1 in { def XORI : ALU_ri<0b100, "xori">; def ORI : ALU_ri<0b110, "ori">; }