On 11/1/26 8:34 PM, Jeff Law wrote:
On 10/23/26 5:45 PM, Vineet Gupta wrote:
It seems prune_expressions is for pruning blocks with an incoming
abnormal edge. the right place for this handling. asm goto has
ordinary edges: bb 2 -> bb 3 is fallthru and bb 2 -> bb 4 (label) has
no flags.
Correct, but it's going to be hard to split edges out of an asm goto.
So in many respects it's like an abnormal, hence the desire to use those
mechansisms rth put into gcse.c so many years ago.

In fact looking in prune_expressions' comment,

" It would
   be best to implement this check along the lines of
   should_hoist_expr_to_dom where the target block is already known
   and, hence, there's no need to conservatively prune expressions on
   "intermediate" set-and-jump instructions."

which is what this patch does.
Oh ;-)  You can tell it's been a long time since I looked at this stuff.

:-)

So it seems that we have explored the solution space and IMO the proposed patch is better suited than prune_expressions. If not, I'm happy to try any other things that you want looked at or ruled out.

Thx,
-Vineet

Reply via email to