[llvm] [StackColoring] Handle SEH catch object stack slots conservatively (PR #66988)

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 21 10:41:14 PDT 2023


================
@@ -3,7 +3,7 @@
 
----------------
rnk wrote:

This is a bit of a nit, but "seh" in the test name usually refers to either:
- Windows call frame info, the unwind opcodes, powered by the .seh_ assembler directive family
- Functionality related to `__try`, non-call exceptions, or EHa, which makes C++ cleanups run for non-call exceptions

For issues related to MSVC C++ EH and _CxxFrameHandler3, I usually just called it "wineh", maybe "wineh-cxx", but you can see we have varying opinions in the test suite currently:
```
$ git grep -l CxxFrameHand ../llvm/test/CodeGen/X86/
../llvm/test/CodeGen/X86/branchfolding-catchpads.ll
../llvm/test/CodeGen/X86/catchpad-dynamic-alloca.ll
../llvm/test/CodeGen/X86/catchpad-lifetime.ll
../llvm/test/CodeGen/X86/catchpad-realign-savexmm.ll
../llvm/test/CodeGen/X86/catchpad-regmask.ll
../llvm/test/CodeGen/X86/catchpad-reuse.ll
../llvm/test/CodeGen/X86/catchpad-weight.ll
../llvm/test/CodeGen/X86/catchret-fallthrough.ll
../llvm/test/CodeGen/X86/catchret-regmask.ll
../llvm/test/CodeGen/X86/cfguard-checks-funclet.ll
../llvm/test/CodeGen/X86/cleanuppad-inalloca.ll
../llvm/test/CodeGen/X86/cleanuppad-large-codemodel.ll
../llvm/test/CodeGen/X86/cleanuppad-realign.ll
../llvm/test/CodeGen/X86/deopt-bundles.ll
../llvm/test/CodeGen/X86/ehcontguard.ll
../llvm/test/CodeGen/X86/funclet-layout.ll
../llvm/test/CodeGen/X86/machine-licm-vs-wineh.mir
../llvm/test/CodeGen/X86/noreturn-call-win64.ll
../llvm/test/CodeGen/X86/pop-stack-cleanup-msvc.ll
../llvm/test/CodeGen/X86/pr26757.ll
../llvm/test/CodeGen/X86/pr27501.ll
../llvm/test/CodeGen/X86/pr42064.ll
../llvm/test/CodeGen/X86/pr48064.mir
../llvm/test/CodeGen/X86/regalloc-spill-at-ehpad.ll
../llvm/test/CodeGen/X86/seh-unwind-inline-asm-codegen.ll
../llvm/test/CodeGen/X86/stack-coloring-seh.ll
../llvm/test/CodeGen/X86/tail-dup-catchret.ll
../llvm/test/CodeGen/X86/tail-merge-wineh.ll
../llvm/test/CodeGen/X86/win-catchpad-csrs.ll
../llvm/test/CodeGen/X86/win-catchpad-nested-cxx.ll
../llvm/test/CodeGen/X86/win-catchpad-varargs.ll
../llvm/test/CodeGen/X86/win-catchpad.ll
../llvm/test/CodeGen/X86/win-cleanuppad.ll
../llvm/test/CodeGen/X86/win-funclet-cfi.ll
../llvm/test/CodeGen/X86/win32-eh-available-externally.ll
../llvm/test/CodeGen/X86/win32-eh-states.ll
../llvm/test/CodeGen/X86/win32-eh.ll
../llvm/test/CodeGen/X86/win64-eh-empty-block-2.mir
../llvm/test/CodeGen/X86/win64-funclet-preisel-intrinsics.ll
../llvm/test/CodeGen/X86/win64-funclet-savexmm.ll
../llvm/test/CodeGen/X86/win64_eh_leaf2.ll
../llvm/test/CodeGen/X86/windows-seh-EHa-CppCatchDotDotDot.ll
../llvm/test/CodeGen/X86/windows-seh-EHa-CppCondiTemps.ll
../llvm/test/CodeGen/X86/windows-seh-EHa-CppDtors01.ll
../llvm/test/CodeGen/X86/wineh-no-ehpads.ll
```

There isn't a huge amount of consistency here, do whatever you feel is best.

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


More information about the llvm-commits mailing list