On Fri, 2022-04-08 at 15:36 -0400, David Malcolm wrote:
> I'm excited to read that rustc_codegen_gcc, the libgccjit-based
> backend
> for rustc can now bootstrap rustc:
>   https://blog.antoyo.xyz/rustc_codegen_gcc-progress-report-10
> 
> I've been focusing on the analyzer, and so haven't been as on top of
> libgccjit patch review as I should have been.  Sorry about that.
> 
> rustc_codegen_gcc currently recommends that people build their own
> libgccjit, as it contains a number of patches that aren't in gcc
> trunk
> yet.
> 
> We're deep in "stage 4" of gcc 12, but libgccjit is a relatively
> self-
> contained part of the project, so I'm wondering if it makes sense to
> try to get all/some of these patches into gcc 12.
> 
> Antoyo: your email of:
>   https://gcc.gnu.org/pipermail/jit/2022q1/001475.html
> said:
> 
> [..snip...]
> 
> > Ok, if the 4 patches currently being reviewed (and listed here:
> > https://github.com/antoyo/libgccjit-patches) were included in gcc
> > 12,
> > I'd be able to build rustc_codegen_gcc with an unpatched gcc.
> > 
> > It is to be noted however, that I'll need more patches for future
> > work.
> > Off the top of my head, I'll at least need a patch for the inline
> > attribute, try/catch and target-specific builtins.
> > The last 2 features will probably take some time to implement, so
> > I'll
> > let you judge if you think it's worth merging the 4 patches
> > currently
> > being reviewed for gcc 12.
> > 
> 
> Are users of rustc_codegen_gcc still likely to need to build their
> own
> libgccjit even if we got all of the following into gcc 12?  If so,
> then
> it's probably best to wait.
> 

I was talking to Josh Triplett (co-load of the Rust language team)
about this and the idea was that if we could have a feature-gated
rustc_codegen_gcc that works with gcc 12, we could start doing the
infrastructure work in rustup to start distributing rustc +
libgccjit.so to users, as an early preview.

So, yes if users want to experiment with the latest changes of
rustc_codegen_gcc, they will have to build libgccjit from source.
The benefit of having those patches in gcc 12 would mostly be to start
this infrastructure work.

> 
> Jakub/Richi (as release managers): how would you feel about me
> pushing
> some of these libgccjit-specific patches into trunk deep in stage 4? 
> I
> believe the risk is low, though I should note that I'm going on
> vacation on 18th through 22nd April and won't have access to my
> computer that week.
> 
> 
> Looking at https://github.com/antoyo/libgccjit-patches I see 5
> patches.
> That said, all but the last one refer to .c source files and so
> predate
> the big .c to .cc migration of the gcc source tree.  So it looks like
> the patches in that repo may need refreshing.

I updated them just now.

> 
> More detailed status:
> 
> [PATCH] Add support for sized integer types, including 128-bit
> integers
> [PR95325]
>   Most recent discussion is here:
>     https://gcc.gnu.org/pipermail/jit/2021q2/001303.html
>   My notes say that I'm waiting on an updated version of patch
> addressing the issues in that review.  Was there one?

Yes, there was one and I just sent it again on the mailing list.

> 
> 
> [PATCH] libgccjit: Add support for bitcasts [PR104071]
>   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104071
>   Most recent discussion seems to be
>     https://gcc.gnu.org/pipermail/jit/2022q1/001475.html
>   I've just now posted a review of that version; LGTM with some nits,
> though it adds a trivial tree_cc_finalize which I'm strictly speaking
> not a maintainer of.
> 
> 
> [PATCH] libgccjit: Add support for register variables [PR104072]
>   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104072
>   Review thread: https://gcc.gnu.org/pipermail/jit/2022q1/001466.html
>   Latest patch seems to be:
>     https://gcc.gnu.org/pipermail/jit/2022q1/001510.html
>   My recollection is that the jit parts of the patch look OK, but
> this
> adds a (trivial) new reginfo_cc_finalize which would thus need
> approval
> from an RTL maintainer.
> 
> 
> [PATCH] libgccjit: Add option to hide stderr logs [PR104073]
>   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104073
>   Review thread: https://gcc.gnu.org/pipermail/jit/2022q1/001469.html
>   Latest patch: https://gcc.gnu.org/pipermail/jit/2022q1/001480.html
>   I approved https://gcc.gnu.org/pipermail/jit/2022q1/001483.html
>   This looks ready to go, assuming release managers are happy.
> 
> 
> [PATCH] libgccjit: Add support for setting the alignment [PR104293]
>   https://gcc.gnu.org/pipermail/jit/2022q1/001494.html
>   I've just now posted a review of that patch; some minor changes
> needed.
> 
> So I think I'm waiting on an updated version of the sized-integer-
> types
> patch, and some nit-fixes for the other patches (but am disappearing
> on
> vacation on 18th - 22nd).

I'll update the patches to address your review over the weekend.
Thanks!

> 
> 
> Hope the above makes sense; sorry again for not getting to these
> patches sooner.
> 
> Dave
> 
> 

Reply via email to