This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix DCE REG_LIBCALL note moving from noop move insns (PR rtl-optimization/33644)
On Fri, Oct 19, 2007 at 11:03:00AM -0700, Seongbae Park (ëìë, ææå) wrote:
> > insns with UNSPECs inside of
> > PARALLELs is IMHO a regression from 4.2 and as such should be fixed.
> I'm not sure on this. During the current DCE development,
> we've asked for what UNSPEC means,
> and the collective answer we got was what's described in rtl.def.
That asking was done on IRC, not on the ml.
Can you show which backend uses UNSPEC inside of PARALLEL that is not
deletable? Or was that part added just for symmetricity?
4.2 insn_dead_p certainly didn't do anything special about plain UNSPECs,
though it wasn't run late when ia64 adds those 3 UNSPECs into the RTL chain.
I have quickly skimmed i386, rs6000, sparc, alpha, mips, s390 md files.
I agree about all these 3 that they shouldn't be deletable.
But the uses of UNSPECs inside of PARALLEL I'm pretty sure all are meant to
mean this insn does what is in the first PARALLEL entry, but does it
slightly differently (except maybe for s390 UNSPEC_EXECUTE, I'm really not
sure about that, but if it wouldn't be deletable, guess 4.2 would have
problems; then UNSPEC_EXECUTE is the only (unspec ) that appears on the
first position inside of the parallel). All the rest is IMNSHO deletable.
UNSPEC inside of PARALLEL