the timing of deleteBranch()

Miguel Garcia Gutierrez miguel.m.garcia at oracle.com
Fri Apr 11 12:16:39 UTC 2014


Tapping into the collective knowledge of the list:

As part of some (experimental) control-flow-sensitive rewritings during HighTier, it's possible for the condition of an IfNode, FixedGuardNode, or GuardingPiNode to become constant.

By itself, the above doesn't kill any code: the nodes for the dead control-path remain in the graph, until LoweringPhase runs, right? AFAIK DeadCodeEliminationPhase doesn't call SimplifierTool.deleteBranch(branch)

Would it be useful to delete those dead branches somewhat earlier? A "lightweight LoweringPhase" could do the job, ie a phase that lowers *only* what would kill branches (IfNode with constant condition, etc.) Useful in other situations? WDYT?


Miguel


More information about the graal-dev mailing list