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

2019-01-16 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang abandoned this revision. mgrang added a comment. I have added a default lowering for llvm.eh.recoverfp in D53540 . So this patch is no longer needed. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D53541/new/ https://reviews.llvm.org/D53541

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

2019-01-15 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang added a comment. I have renamed llvm.x86.seh.recoverfp intrinsic to llvm.eh.recoverfp in D56747 and D56748 . CHANGES SINCE LAST ACTION https://reviews.llvm.org/D53541/new/ https://reviews.llvm.org/D53541 ___

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

2019-01-15 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. In 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 f

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

2019-01-15 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang added a comment. In D53541#1358210 , @rnk wrote: > I can't compile the example you gave yet because I haven't applied your > patches locally, but this is the "three stack pointer" case that I have in > mind: > > struct Foo { > void (*ptr)();

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

2019-01-15 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. I can't compile the example you gave yet because I haven't applied your patches locally, but this is the "three stack pointer" case that I have in mind: struct Foo { void (*ptr)(); int x, y, z; }; void escape(void *); void large_align(int a0, int a1, int a

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

2019-01-15 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang added a comment. In D53541#1356904 , @rnk wrote: > In D53541#1353251 , @mgrang wrote: > > > > What about the three stack pointer case of stack realignment plus a > > > dynamic alloca? Typically this is the c

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

2019-01-14 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. In D53541#1353251 , @mgrang wrote: > > What about the three stack pointer case of stack realignment plus a dynamic > > alloca? Typically this is the case where recoverfp is necessary. > > @rnk Sorry, I missed your comment earlier. I a

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

2019-01-11 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang updated this revision to Diff 181333. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D53541/new/ https://reviews.llvm.org/D53541 Files: lib/CodeGen/CGException.cpp test/CodeGen/exceptions-seh.c Index: test/CodeGen/exceptions-seh.c ==

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

2019-01-10 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang added a comment. In D53541#1282900 , @rnk wrote: > In D53541#1282764 , @mgrang wrote: > > > Updated the patch with the following changes: > > > > 1. Emit llvm.x86.seh.recoverfp only for non-aarch64 targets. F

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

2019-01-10 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang updated this revision to Diff 181106. mgrang retitled this revision from "[COFF, ARM64] Support SEH for ARM64 Windows" to "[COFF, ARM64] Do not emit x86_seh_recoverfp intrinsic". CHANGES SINCE LAST ACTION https://reviews.llvm.org/D53541/new/ https://reviews.llvm.org/D53541 Files: lib