jsjodin wrote: > I would think of `UnrealizedConversionCastOps` surviving multiple steps not > really idomatic, they are meant to just note "here is some conversion that > needs to be hadeled later in this pass", ideally in between passes you sould > have IR that has some expected form. > > On the other hand why `OpenMP_IntLikeTypeInterface` and not introducing this > to core mlir similarly to floats and pointers? Then arbitrary consumer of CIR > can use the interface not just OpenMP. > > Also present solution would require attaching `OpenMP_IntLikeTypeInterface` > to CIR types which creates not nice dependency direction in my opinion.
Do you mean there should be Pointer/Int/Float-like interfaces in core MLIR that both OMP and CIR could refer to? It seems like a doable solution depending on how difficult it would be to agree in what should be in those interfaces. In the OMP-specific interfaces we can choose what is relevant for those types and makes it clear what CIR needs to provide to be an input to OMP operations. IMO the dependency on CIR->OMP isn't too bad in the sense that CIR is the base language and essentially imports OMP. We have a precedent with flang/FIR already, although that particular point may not be a good argument if that is a poor design choice. https://github.com/llvm/llvm-project/pull/196363 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
