================
@@ -4619,6 +4619,12 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl 
GD, unsigned BuiltinID,
     // Buffer is a void**.
     Address Buf = EmitPointerWithAlignment(E->getArg(0));
 
+    if (getTarget().getTriple().getArch() == llvm::Triple::systemz) {
+      // Call LLVM's EH setjmp, which is lightweight.
----------------
efriedma-quic wrote:

Hmm.  That's pretty messy.  See also 02269a66b362f1345cc12176f7e2cbc5474d2f02 
and faa3abbe39a2b17546387fde04d2822e0402b418 .  I think what happened is that 
the meaning of the intrinsic was adapted to suit sjlj lowering, and nobody 
really thought about trying to expose a stable interface to frontends.

I still think it's a bit of a hazard to adjust the semantics of the intrinsic 
at this point without changing the name.  But there isn't any existing SystemZ 
bitcode to break, so it might be enough to just update the documentation.

https://github.com/llvm/llvm-project/pull/116642
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to