I noticed that I have made a mistake in previous patch:
https://patchwork.sourceware.org/project/gcc/patch/
20220817071950.271762-1-juzhe.zhong@rivai.ai/
The previous statement before this patch:
bool need_barrier_p = (get_frame_size () + cfun->machine->frame.arg_pointer_offset) != 0;
However, I changed it in the previous patch:
bool need_barrier_p = known_ne (get_frame_size (), cfun->machine->frame.arg_pointer_offset);
This is incorrect.
Now, I correct this statement in this patch.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_expand_epilogue): Fix statement.
rtx insn;
/* We need to add memory barrier to prevent read from deallocated stack. */
- bool need_barrier_p
- = known_ne (get_frame_size (), cfun->machine->frame.arg_pointer_offset);
+ bool need_barrier_p = known_ne (get_frame_size ()
+ + cfun->machine->frame.arg_pointer_offset, 0);
if (cfun->machine->naked_p)
{