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); >>