On Tue, Nov 13, 2018 at 10:23:12AM +0000, Andrew Stubbs wrote: > Now that Segher says the combine issue is a bug,
Well, first show what really happens; if it really deletes a USE, that is a bug yes. rtl.def says: /* Indicate something is used in a way that we don't want to explain. For example, subroutine calls will use the register in which the static chain is passed. USE can not appear as an operand of other rtx except for PARALLEL. USE is not deletable, as it indicates that the operand is used in some unknown way. */ DEF_RTL_EXPR(USE, "use", "e", RTX_EXTRA) > I don't suppose I can easily reproduce it on another architecture, so > it'll have to wait until GCN is committed. Just show the -fdump-rtl-combine-all output? > It's also possible that the issue has ceased to exist since GCC 7. Yes, please mention the version in the PR, if it's not trunk :-) Segher