[PATCH] D91455: [XCOFF][AIX] Generate LSDA data and compact unwind section on AIX

Jason Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 1 09:16:27 PST 2020


jasonliu added inline comments.


================
Comment at: llvm/lib/CodeGen/AsmPrinter/AIXException.cpp:68
+    Per = dyn_cast<Function>(F.getPersonalityFn()->stripPointerCasts());
+  bool EmitEHBlock =
+      HasLandingPads || (F.hasPersonalityFn() &&
----------------
daltenty wrote:
> This logic seems very similar to the base class. 
> 
> The pattern there and in other instance of EHStreamer seems to be to make these queries in beginFunction, store the results in a member and just early exit if we have nothing to emit in endFunction, etc. Is that something we should be doing here? (e.g. presumably the traceback emission will want to know if we plan to emit anything so it can emit the appropriate info)
I agree that this is a query that we want to share with the traceback table emission. 
Presumably, we need to do the traceback table emission somewhere in PPCAIXAsmPrinter.
So that means we would need to have a query that could accessible from PPCAIXAsmPrinter and here. 
And there are other EHStreamer that have similar queries (but not all of them), so this makes it trickier to get it right if we want to do it for all platforms. 
I was hoping to address this issue when we actually do the traceback table emission for EH info so that we could keep the scope of the patch reasonable.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91455/new/

https://reviews.llvm.org/D91455



More information about the cfe-commits mailing list