I know we're deep into stage3 and about to transition to stage4. So if the consensus is for this to wait, I'll understand.... This it the V3 of the ext-dce patch based on Joern's work from last year. Changes since V2: Handle MINUS Minor logic cleanup for SUBREGs in ext_dce_process_sets Includes Joern's carry_backpropagate work Cleaned up and removed some use handling code for STRICT_LOW_PART Moved non-local goto special case out of main use handling, similar to how we handle CALL_INSN_FUSAGE Use df_simple_dataflow rather than custom dataflow handling There's more cleanups we could be doing here, but the question is do we stop commit what we've got and iterate on the trunk or do we defer until gcc-15 in which case we iterate on a branch or something. This still is enabled at -O1 or above, but that's to get as much testing as possible. Assuming the rest is ACK'd for the trunk we'll put it into the list of optimizations enabled by -O2.