wenlei added a comment.

> If only LICM benefits from it, I'd consider creating a BFI instance for the 
> duration of the LICM pass

Currently only LICM uses BFI, but I think it'd be beneficial for other loop 
passes to be able to use BFI too. BFI not accessible to loop passes seems to be 
a non-trivial limitation (comparing to other compilers). I would think it's not 
that other loop passes won't benefit from BFI, but because of the constraints 
imposed by pass manager, we couldn't reap any potential benefit.

I'm hoping that we could find a way to lift that limitation (and of course 
without breaking the invariants we need to keep for pass manager). This change 
is an attempt towards that. It's not ideal, as it only covers invalidation (for 
removal of blocks), but not incremental update for BFI to reflect arbitrary CFG 
changes, which can be really hard. Still, we think it's a practical solution to 
expose BFI to loop passes.

> or only enabling it in loop pipelines that have LICM in them (see example 
> comment in one of the tests).

Makes sense for now.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86156/new/

https://reviews.llvm.org/D86156

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to