On Thu, 2023-11-09 at 17:27 -0500, Antoni Boucher wrote:
> Hi.
> This patch adds support for getting the CPU features in libgccjit
> (bug
> 112466)
> 
> There's a TODO in the test:
> I'm not sure how to test that gcc_jit_target_info_arch returns the
> correct value since it is dependant on the CPU.
> Any idea on how to improve this?
> 
> Also, I created a CStringHash to be able to have a
> std::unordered_set<const char *>. Is there any built-in way of doing
> this?

Thanks for the patch.

Some high-level questions:

Is this specifically about detecting capabilities of the host that
libgccjit is currently running on? or how the target was configured
when libgccjit was built?

One of the benefits of libgccjit is that, in theory, we support all of
the targets that GCC already supports.  Does this patch change that, or
is this more about giving client code the ability to determine
capabilities of the specific host being compiled for?

I'm nervous about having per-target jit code.  Presumably there's a
reason that we can't reuse existing target logic here - can you please
describe what the problem is.  I see that the ChangeLog has:

>       * config/i386/i386-jit.cc: New file.

where i386-jit.cc has almost 200 lines of nontrivial code.  Where did
this come from?  Did you base it on existing code in our source tree,
making modifications to fit the new internal API, or did you write it
from scratch?  In either case, how onerous would this be for other
targets?

I'm not at expert at target hooks (or at the i386 backend), so if we do
go with this approach I'd want someone else to review those parts of
the patch.

Have you verified that GCC builds with this patch with jit *not*
enabled in the enabled languages?

[...snip...]

A nitpick:

> +.. function:: const char * \
> +              gcc_jit_target_info_arch (gcc_jit_target_info *info)
> +
> +   Get the architecture of the currently running CPU.

What does this string look like?
How long does the pointer remain valid?

Thanks again; hope the above makes sense
Dave

Reply via email to