Hi David,

David Faust writes:

> On 10/26/23 08:08, Cupertino Miranda wrote:
>>
>> Changes from v1:
>>  - Fixed Davids remarks on initial patch.
>>  - Fixed mistake with deleted '*'.
>>
>> Changes from v2:
>>  - Reversed return value for bpf_const_not_ok_for_debug_p function.
>
> Hmm..
>
>> +static bool
>> +bpf_const_not_ok_for_debug_p (rtx p)
>> +{
>> +  if (GET_CODE (p) == UNSPEC
>> +      && XINT (p, 1) == UNSPEC_CORE_RELOC)
>> +    return false;
>> +
>> +  return true;
>> +}
>> +
>> +#undef TARGET_CONST_NOT_OK_FOR_DEBUG_P
>> +#define TARGET_CONST_NOT_OK_FOR_DEBUG_P bpf_const_not_ok_for_debug_p
>
>  -- Target Hook: bool TARGET_CONST_NOT_OK_FOR_DEBUG_P (rtx X)
>      This hook should return true if X should not be emitted into debug
>      sections.
>
> As written now, won't this cause all ordinary (non-UNSPEC_CORE_RELOC)
> consts to get rejected for debug? ("regular" debug i.e. DWARF, not to
> be confused with the BTF.ext holding CO-RE relocs).
>
> I see other targets implementing the hook returning true only in
> specific cases and false otherwise.  The implementation in v1 makes
> more sense to me.  Could you explain why flip the return value?
It turns out that defining this hook is not the proper solution.
I am trying a different approach which I believe is better.

Thanks,
Cupertino

>>
>> Changes from v3:
>>  - Fixed ICE in two bpf-next tests:
>>      -      if (!wi->is_lhs)
>>      -       core_mark_as_access_index (gimple_get_lhs (wi->stmt));
>>      +      tree lhs;
>>      +      if (!wi->is_lhs
>>      +         && (lhs = gimple_get_lhs (wi->stmt)) != NULL_TREE)
>>      +       core_mark_as_access_index (lhs);
>>

Reply via email to