From: Alex Bradbury Date: Sat, 9 Mar 2019 09:30:14 +0000 (+0000) Subject: [RISCV][NFC] Split out emitSelectPseudo from EmitInstrWithCustomInserter X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cd335133b271d7770ed3417d6ed435d163946244;p=llvm [RISCV][NFC] Split out emitSelectPseudo from EmitInstrWithCustomInserter It's cleaner and more consistent to have a separate helper function here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355772 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/RISCV/RISCVISelLowering.cpp b/lib/Target/RISCV/RISCVISelLowering.cpp index d844a8364eb..37a91acdd1e 100644 --- a/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/lib/Target/RISCV/RISCVISelLowering.cpp @@ -787,22 +787,8 @@ static MachineBasicBlock *emitBuildPairF64Pseudo(MachineInstr &MI, return BB; } -MachineBasicBlock * -RISCVTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI, - MachineBasicBlock *BB) const { - switch (MI.getOpcode()) { - default: - llvm_unreachable("Unexpected instr type to insert"); - case RISCV::Select_GPR_Using_CC_GPR: - case RISCV::Select_FPR32_Using_CC_GPR: - case RISCV::Select_FPR64_Using_CC_GPR: - break; - case RISCV::BuildPairF64Pseudo: - return emitBuildPairF64Pseudo(MI, BB); - case RISCV::SplitF64Pseudo: - return emitSplitF64Pseudo(MI, BB); - } - +static MachineBasicBlock *emitSelectPseudo(MachineInstr &MI, + MachineBasicBlock *BB) { // To "insert" a SELECT instruction, we actually have to insert the triangle // control-flow pattern. The incoming instruction knows the destination vreg // to set, the condition code register to branch on, the true/false values to @@ -862,6 +848,23 @@ RISCVTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI, return TailMBB; } +MachineBasicBlock * +RISCVTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI, + MachineBasicBlock *BB) const { + switch (MI.getOpcode()) { + default: + llvm_unreachable("Unexpected instr type to insert"); + case RISCV::Select_GPR_Using_CC_GPR: + case RISCV::Select_FPR32_Using_CC_GPR: + case RISCV::Select_FPR64_Using_CC_GPR: + return emitSelectPseudo(MI, BB); + case RISCV::BuildPairF64Pseudo: + return emitBuildPairF64Pseudo(MI, BB); + case RISCV::SplitF64Pseudo: + return emitSplitF64Pseudo(MI, BB); + } +} + // Calling Convention Implementation. // The expectations for frontend ABI lowering vary from target to target. // Ideally, an LLVM frontend would be able to avoid worrying about many ABI