After following files jit-recording.cc and jit-playback.cc, I think I've found out where I need to patch JIT to do what I want it to do. Looks like both compiling to file and memory ultimately rely upon playback::context::compile() to do the bulk of their work and then override a postprocess() method to do additional handling pertaining to their specific task. If I can find a way to cache or store the intermediate result generated by compile(), I should then be able to restructure this to have the follow-up tasks required by both different forms of compilation to be done starting with this intermediate result. Anyone see a problem with my approach? I'm hoping it will be possible to reĆ¼se compilation results produced by compile() in this way without it causing any conflicts... Regards, *J.S.* *My PGP Public Key Identity* pub 4096R/*B7A947E4* 2016-11-16 [expires: 2025-12-31] Key fingerprint = *E2C4 514F F0FA 52D1 896A B1D6 3D42 BFD9 B7A9 47E4* uid Joshua Saxby uid Joshua Saxby (saxbophone) sub 4096R/0A445946 2016-11-16 [expires: 2025-12-31] On Sat, 10 Jun 2023 at 13:00, wrote: > Send Jit mailing list submissions to > jit@gcc.gnu.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://gcc.gnu.org/mailman/listinfo/jit > or, via email, send a message with subject or body 'help' to > jit-request@gcc.gnu.org > > You can reach the person managing the list at > jit-owner@gcc.gnu.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Jit digest..." > Today's Topics: > > 1. Modifying the jit compiler API? (Joshua Saxby) > > > > ---------- Forwarded message ---------- > From: Joshua Saxby > To: jit@gcc.gnu.org > Cc: > Bcc: > Date: Sat, 10 Jun 2023 00:04:43 +0100 > Subject: Modifying the jit compiler API? > Currently the JIT has two functions allowing you to compile a context > either to memory or to file. > > But what if you want to compile to both? There doesn't seem to be any way > to do this except by calling both functions separately which I believe will > effectively be two separate compilations... > > Presumably, it should be possible to modify this part of the API to compile > to some form of intermediate representation of the work that is common to > both kinds of compilation, and then turn that into code in memory and in > file, respectively. > > Anyone got any pointers for me on where in the code would be the best place > for me to modify to dupport this? I did take a look in the implementation > code of JIT sone weeks ago and remember seeing lots of complicated stuff > regarding recordings and replays that looked relevant... > > A slighty simpler alteration I am also interested in making is allowing > compile to file to compile to a buffer in memory as well as a file (I > suppose it could be termed "compile to binary"). Maybe I should start with > that... > >