[llvm] [TII][X86] Do not schedule frame-setup/frame-destory instructions (PR #96611)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 25 20:53:05 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: Haohai Wen (HaohaiWen)
<details>
<summary>Changes</summary>
frame-setup/frame-destroy instruction can not be scheduled around by
PostRAScheduler. Their order is critical for SEH.
---
Full diff: https://github.com/llvm/llvm-project/pull/96611.diff
1 Files Affected:
- (modified) llvm/lib/Target/X86/X86InstrInfo.cpp (+5)
``````````diff
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index 1a43d5c17080e..069a1ec9a5988 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -8832,6 +8832,11 @@ bool X86InstrInfo::isSchedulingBoundary(const MachineInstr &MI,
Opcode == X86::PLDTILECFGV)
return true;
+ // Frame setup and destory can't be scheduled around.
+ if (MI.getFlag(MachineInstr::FrameSetup) ||
+ MI.getFlag(MachineInstr::FrameDestroy))
+ return true;
+
return TargetInstrInfo::isSchedulingBoundary(MI, MBB, MF);
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/96611
More information about the llvm-commits
mailing list