[llvm] 861f5dd - [X86][NFC] Minor improvement in X86InstrInfo::optimizeCompareInstr
Shengchen Kan via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 21 05:00:14 PST 2022
Author: Shengchen Kan
Date: 2022-11-21T21:00:07+08:00
New Revision: 861f5dd688c19d206cc44718be9ff75894065d46
URL: https://github.com/llvm/llvm-project/commit/861f5dd688c19d206cc44718be9ff75894065d46
DIFF: https://github.com/llvm/llvm-project/commit/861f5dd688c19d206cc44718be9ff75894065d46.diff
LOG: [X86][NFC] Minor improvement in X86InstrInfo::optimizeCompareInstr
Before this patch, the code enumerated `getCondFromBranch`, `getCondFromSETCC` and `getCondFromFromCMov` to get the condition code of a `MachineInstr`, and assigned the result to variable `OldCC` when `MI || IsSwapped || ImmDelta != 0` was satisfiled.
After this patch, the `if-else` structure is eliminated by using `getCondFromMI`. Since `OldCC` is only used when `MI || IsSwapped || ImmDelta != 0` is true, it is initialized with `getCondFromMI` directly outside the scope of `if` now.
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D138349
Added:
Modified:
llvm/lib/Target/X86/X86InstrInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index 86dc8f92aa4d2..ea34f45173ce9 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -4498,18 +4498,10 @@ bool X86InstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, Register SrcReg,
continue;
// EFLAGS is used by this instruction.
- X86::CondCode OldCC = X86::COND_INVALID;
- if (MI || IsSwapped || ImmDelta != 0) {
- // We decode the condition code from opcode.
- if (Instr.isBranch())
- OldCC = X86::getCondFromBranch(Instr);
- else {
- OldCC = X86::getCondFromSETCC(Instr);
- if (OldCC == X86::COND_INVALID)
- OldCC = X86::getCondFromCMov(Instr);
- }
- if (OldCC == X86::COND_INVALID) return false;
- }
+ X86::CondCode OldCC = X86::getCondFromMI(Instr);
+ if ((MI || IsSwapped || ImmDelta != 0) && OldCC == X86::COND_INVALID)
+ return false;
+
X86::CondCode ReplacementCC = X86::COND_INVALID;
if (MI) {
switch (OldCC) {
More information about the llvm-commits
mailing list