[llvm] [XRay][X86] Fix stack alignment for custom event calls. (PR #89360)

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Mon May 27 17:48:37 PDT 2024


================
@@ -36254,6 +36254,31 @@ X86TargetLowering::EmitSjLjDispatchBlock(MachineInstr &MI,
   return BB;
 }
 
+MachineBasicBlock *
+X86TargetLowering::emitPatchableEventCall(MachineInstr &MI,
+                                          MachineBasicBlock *BB) const {
+  // Wrap patchable event calls in CALLSEQ_START/CALLSEQ_END, as tracing
+  // calls may require proper stack alignment.
+  const TargetInstrInfo &TII = *Subtarget.getInstrInfo();
+  const MIMetadata MIMD(MI);
+  MachineFunction &MF = *BB->getParent();
+
+  // Emit CALLSEQ_START right before the instruction.
+  BB->getParent()->getFrameInfo().setAdjustsStack(true);
----------------
MaskRay wrote:

We can use here `MF.getFrameInfo()` here

https://github.com/llvm/llvm-project/pull/89360


More information about the llvm-commits mailing list