On 6/20/23 03:40, Fei Gao wrote:
gcc/ChangeLog:
* shrink-wrap.cc (try_shrink_wrapping_separate):call
use_shrink_wrapping_separate.
(use_shrink_wrapping_separate): wrap the condition
check in use_shrink_wrapping_separate.
* shrink-wrap.h (use_shrink_wrapping_separate): add to extern
I'm still missing somethign here.
Why doesn't the RISC-V target simply disable separate shrink wrapping by
indicating no components are eligible in the relevant cases. ie, I do
not think we need another knob here.
To be more concrete:
/* Implement TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS. */
static sbitmap
riscv_get_separate_components (void)
{
HOST_WIDE_INT offset;
sbitmap components = sbitmap_alloc (FIRST_PSEUDO_REGISTER);
bitmap_clear (components);
if (riscv_use_save_libcall (&cfun->machine->frame)
|| cfun->machine->interrupt_handler_p
|| !cfun->machine->frame.gp_sp_offset.is_constant ())
return components;
Don't we get the behavior we want if we change this code to return an
zero'd sbitmap?
jeff