[PATCH] D53541: [COFF, ARM64] Do not emit x86_seh_recoverfp intrinsic

Reid Kleckner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 15 11:46:58 PST 2019


rnk added a comment.

In D53541#1358310 <https://reviews.llvm.org/D53541#1358310>, @mgrang wrote:

> @rnk Thanks a lot for the clarification. Yes, I see o.x: 0 instead of 42. Supporting this case would mean implementing recoverfp as well as support generating the correct parent frame offset for arm64 windows. Do you think this can be done in a follow-up patch? So this patch and D53540 <https://reviews.llvm.org/D53540> would add the basic support for SEH and we can go fix corner/more complex cases in follow-up patches. There are also several more comprehensive test cases in https://github.com/Microsoft/windows_seh_tests which we plan to address next.


Sure, there's no need to handle the case of highly aligned stack objects in the initial version. But I would recommend making incremental progress in a way that brings us closer to the desired final end state.

I'd recommend renaming llvm.x86.seh.recoverfp to something non-architecture specific, and then implementing it as a no-op in the AArch64 backend. It will simply return the FP it is given, with FIXME comments about handling highly-aligned locals in the future. That'll save us this target check in clang, which we don't need in the long run.


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

https://reviews.llvm.org/D53541





More information about the cfe-commits mailing list