On Tue, Sep 21, 2021 at 11:31 AM Martin Jambor <mjam...@suse.cz> wrote:
>
> Hi,
>
> On Tue, Sep 21 2021, Kewen.Lin wrote:
> > on 2021/9/17 下午7:26, Martin Jambor wrote:
> >> On Fri, Sep 17 2021, Kewen.Lin wrote:
> [...]
> >>>
> >>> Sorry that I failed to use 16 bit-fields for this, I figured out that
> >>> the bit-fields can not be address-taken or passed as non-const reference.
> >>> The gentype also failed to recognize uint16_t if I used uint16_t directly
> >>> in ipa-fnsummary.h.  Finally I used unsigned int instead.
> >>>
> >>
> >> well, you could have used:
> >>
> >>   unsigned int target_info : 16;
> >>
> >> for the field (and uint16_t when passed to hooks).
> >>
> >> But I am not sure if it is that crucial.
> >>
> >
> > I may miss something, specifically I tried with:
> >
> > 1)
> >
> >   unsigned int target_info : 16;
> >   unsigned inlinable : 1;
> >   ...
> >
> >   update_ipa_fn_target_info (uint16_t &, const gimple *)
>
> Yeah, you would have to copy the bit-field into a temporary, pass
> reference to that in the hook and then copy it back.  At least that is
> what I meant but since we apparently want unsigned int everywhere, it
> does not matter.

Or use a by-value interface:

 uint16_t update_ipa_fn_target_info (uint16_t in, const gimple *stmt);

with the function returning the (changed) set.

> Martin

Reply via email to