Reid Kleckner via llvm-dev
2015-Oct-30 00:51 UTC
[llvm-dev] Can JIT be targeted to 32-bit in a 64-bit Wndows environment?
You actually can mix 32 and 64 bit code in the same Windows process, but only with great effort. Fixing PR24233 is probably easier. :) We know how to generate the info, but we still have to get it registered... On Thu, Oct 29, 2015 at 2:19 PM, Lang Hames via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi Dibyendu, > > I'm not familiar with Windows at all, but I assume you can't mix 64-bit > and 32-bit code in the one process. > > Reid - Are we generating correct call frame information for windows yet ( > https://llvm.org/PR24233) ? If so, I think Dibyendu would just have to > override registerEHFrames/deregisterEHFrames and have them call > RtlInstallFunctionTableCallback/RtlAddFunctionTable, right? > > - Lang. > > On Sun, Oct 25, 2015 at 5:30 AM, Dibyendu Majumdar via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hi >> >> On 64-bit Windows the lack of proper stack unwinding support causes >> crashes in JIT code generated by LLVM. I was wondering if it is >> possible to ask LLVM to generate 32-bit code - and if that would work >> within a 64-bit Windows application - i.e. the rest of the system will >> be 64-bit only the generated code will be 32-bit. I was also wondering >> if this would allow me to workaround the crashes due to stack >> unwinding problems. >> >> Thanks and Regards >> Dibyendu >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151029/789cf3a4/attachment.html>
Lang Hames via llvm-dev
2015-Oct-30 02:55 UTC
[llvm-dev] Can JIT be targeted to 32-bit in a 64-bit Wndows environment?
Thanks Reid! Apologies for re-asking - I may be missing something obvious, but is the registration something Dibyendu can do himself in registerEHFrame/deregisterEHFrames? It looks like registerEHFrames/deregisterEHFrames is implemented in RuntimeDyldCOFFX86_64, but it may just have been copy/pasted from somewhere else - I have no idea whether it works. - Lang. On Thu, Oct 29, 2015 at 5:51 PM, Reid Kleckner <rnk at google.com> wrote:> You actually can mix 32 and 64 bit code in the same Windows process, but > only with great effort. Fixing PR24233 is probably easier. :) > > We know how to generate the info, but we still have to get it registered... > > On Thu, Oct 29, 2015 at 2:19 PM, Lang Hames via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hi Dibyendu, >> >> I'm not familiar with Windows at all, but I assume you can't mix 64-bit >> and 32-bit code in the one process. >> >> Reid - Are we generating correct call frame information for windows yet ( >> https://llvm.org/PR24233) ? If so, I think Dibyendu would just have to >> override registerEHFrames/deregisterEHFrames and have them call >> RtlInstallFunctionTableCallback/RtlAddFunctionTable, right? >> >> - Lang. >> >> On Sun, Oct 25, 2015 at 5:30 AM, Dibyendu Majumdar via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >>> Hi >>> >>> On 64-bit Windows the lack of proper stack unwinding support causes >>> crashes in JIT code generated by LLVM. I was wondering if it is >>> possible to ask LLVM to generate 32-bit code - and if that would work >>> within a 64-bit Windows application - i.e. the rest of the system will >>> be 64-bit only the generated code will be 32-bit. I was also wondering >>> if this would allow me to workaround the crashes due to stack >>> unwinding problems. >>> >>> Thanks and Regards >>> Dibyendu >>> _______________________________________________ >>> LLVM Developers mailing list >>> llvm-dev at lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151029/1c751dc7/attachment.html>
Tim Northover via llvm-dev
2015-Oct-30 14:32 UTC
[llvm-dev] Can JIT be targeted to 32-bit in a 64-bit Wndows environment?
On 29 October 2015 at 17:51, Reid Kleckner via llvm-dev <llvm-dev at lists.llvm.org> wrote:> You actually can mix 32 and 64 bit code in the same Windows process, but > only with great effort. Fixing PR24233 is probably easier. :)How does that work? Some syscall that you make to switch modes and jump to a particular location? Tim.
Bill Seurer via llvm-dev
2015-Oct-30 14:48 UTC
[llvm-dev] Revisions that cause buildbot problems but aren't on blame lists
I've investigated several failures that my buildbots detected but when I figured out which revisions caused the failures they weren't on any blame lists. Thus the developer has no clue they broke anything until I contact them. It appears this happens when (for instance) one of the test cases in projects/test-suite is updated and causes a failure. Such a revision also won't kick off a new test cycle. Should the bots be including their test cases in determining blame lists and when to run or was this left off on purpose? -- -Bill Seurer
Kevin Frei via llvm-dev
2015-Oct-30 21:01 UTC
[llvm-dev] Can JIT be targeted to 32-bit in a 64-bit Wndows environment?
No, you really can't do this in any general purpose fashion. You can do some weird things that allow you to use 32 bit pointers while using the full 64 bit ISA, but that won't solve your problem (you still need unwind data). The way to address the lack of stack unwinding is by adding capabilities to your runtime that use one of RtlAddFunctionTable, RtlAddGrowableFunctionTable, AddVectoredExceptionHandler, or RtlInstallFunctionTableCallback. I used to know a lot (way too much) about this stuff, but my brain has mercifully garbage collected most of it. You could try looking through some of my old MSDN blog found here: http://blogs.msdn.com/b/freik/archive/tags/x64+abi+info/ but it’s not going to be too informative, because most of it was written before I was involved with JIT compilation. I'd be happy to try to answer questions as they come up... -Kev -----Original Message----- From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Tim Northover via llvm-dev Sent: Friday, October 30, 2015 7:32 AM To: Reid Kleckner <rnk at google.com> Cc: LLVM Developers Mailing List <llvm-dev at lists.llvm.org>; Reid Kleckner <reid at kleckner.net> Subject: Re: [llvm-dev] Can JIT be targeted to 32-bit in a 64-bit Wndows environment? On 29 October 2015 at 17:51, Reid Kleckner via llvm-dev <llvm-dev at lists.llvm.org> wrote:> You actually can mix 32 and 64 bit code in the same Windows process, > but only with great effort. Fixing PR24233 is probably easier. :)How does that work? Some syscall that you make to switch modes and jump to a particular location? Tim. _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=CwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=4zbdR5ro-4Q70KzNlQEJGQ&m=aQp1Fpw9kqdA0zTLPW-VD2WUietCv1PbQwWpfy3hz_o&s=l47K1peXJebEjQgvcW0ebZYGtPYXPh-qxdgV1ihE-qI&e=