xlauko wrote:

@andykaylor it is a bit unfortunate. A throw from a call in the middle of the 
body isn’t a region terminator, so `RegionBranchOpInterface` has no branch 
point to hang an edge on. An EH cleanup reached only that way has no 
predecessor in the region graph. 

At the moment no CIR pass uses these edges to delete regions, so nothing breaks 
today. But generic passes like `-sccp` or `-remove-dead-values` run on 
unflattened CIR would treat that cleanup as dead. Modeling it properly needs an 
interface extension upstream, e.g. letting ops that may unwind act as branch 
points, which I’d rather discuss separately.

https://github.com/llvm/llvm-project/pull/221222
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to