This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PR optimization/9786
> In general, no. But
>
> (insn 21 19 87 2 (set (reg:DF 8 st(0) [63])
> (float_extend:DF (reg:SF 8 st(0)))) 136 {*extendsfdf2_1} (nil)
> (expr_list:REG_EH_REGION (const_int 1 [0x1])
> (nil)))
>
> won't ever trap on x86.
Agreed. So we must know that the insn doesn't actually trap to delete it.
> The patch looks ok.
May I backport it to the 3.3 branch too (PR opt/9786 is a regression)?
Mark said in the audit trail of the PR that, if Olivier's patch was accepted,
the ??? comment would need to be updated. It currently reads as follows:
??? We are normally supposed not to delete trapping insns. The insns
possibly deleted above are known to be no-ops, however, so it seems OK in
this case. It would have been better to detect this earlier and avoid
creating the eh edge in the first place, still, but we don't have enough
information at that time.
What about something like
??? We are normally supposed not to delete trapping insns, so we pretend
that the insns deleted above don't actually trap. It would have been
better to detect this earlier and avoid creating the eh edge in the first
place, still, but we don't have enough information at that time.
--
Eric Botcazou