TIFitis wrote: @kiranchandramohan I discussed the current approach with @skatrak today. When trying to implement the mapper lowering for the map clause, it became apparent that we need to add the `declMapperOp` name to the `SymbolTable`. As such, we would also need to hoist the `declareMapperOp` to the `ModuleOp`.
I am however struggling with name mangling the `declMapperOp` such that scoping information is preserved, and we don't have clashing `declMapperOps` from different nested scopes with the same name. Take the following example: ``` program my_prog type my_type integer :: num end type !$omp declare mapper (my_mapper : my_type :: my_var) map (my_var) contains subroutine test type(my_type) :: xyz !$omp target enter data map(mapper(my_mapper), to: xyz) end subroutine test end program my_prog ``` Here after mangling the, `declMapperOp` symbol name becomes `_QQFmy_mapper`. But when trying to mangle the name that occurs in the mapClause before lookup results in `_QQFFtestmy_mapper`. Do you know any mechanism in Fortran lowering that could help resolve this issue? https://github.com/llvm/llvm-project/pull/117046 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits