[Verifier] Significantly speed up IsolatedFromAbove checking. NFC.
The implementation had a couple of problems, including checking "isProperAncestor" in an inefficient way. It also recursed into other "isolated from above" ops. In the case of CIRCT, we get three levels of isolated ops: mlir::ModuleOp firrtl::CircuitOp firrtl::FModuleOp The verification for module would recurse into the circuits and fmodules checking them. The verifier hook for circuit would recurse into all the modules reverifying them, fmoduleop would then reverify them. The same happens for mlir::ModuleOp and Func. While here, fix an old design problem: IsolatedFromAbove checking was implemented by a method on the Region class, which isn't actually general and isn't used by anything else. Move it over to be a trait impl verifier method like the others and specialize it for its task. Differential Revision: https://reviews.llvm.org/D103345
Loading
Please register or sign in to comment