[PATCH] D85544: [OpenMPOpt] ICV tracking for calls

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 22:00:54 PDT 2020


jdoerfert reopened this revision.
jdoerfert added a comment.
This revision is now accepted and ready to land.

I'll revert this one in a second as it breaks some codes (at least on power).
The reason is that this extended the Attributor scope to the module slice. The Attributor thinks all of this is the SCC and when it tries to remove a function we see an assertion (as the function is actually not in the SCC).
The fix is to teach the Attributor about the module slice properly. Maybe in a pre-commit. For now we just revert this to unblock the build.

Here is the reproducer we should include in the OpenMP tests as well:

  define internal fastcc void @"_omp$reduction$reduction_func14"() unnamed_addr {
    %call = call i8 @_ZStplIdESt7complexIT_ERKS2_S4_()
    ret void
  }
  
  define linkonce_odr hidden i8 @_ZStplIdESt7complexIT_ERKS2_S4_() local_unnamed_addr {
    ret i8 undef
  }
  
  declare void @__omp_offloading_2b_4010cad__ZN11qmcplusplus7ompBLAS17gemv_batched_implIfEEiRiciiPKT_PKS5_iS7_iS5_PKPS3_ii_l148(i64, i64, i64, float**, float**, i64, float**, float*, float*, i64) local_unnamed_addr
  
  declare dso_local fastcc void @__kmpc_for_static_init_8u() unnamed_addr
  
  !nvvm.annotations = !{!0}
  
  !0 = !{void (i64, i64, i64, float**, float**, i64, float**, float*, float*, i64)* @__omp_offloading_2b_4010cad__ZN11qmcplusplus7ompBLAS17gemv_batched_implIfEEiRiciiPKT_PKS5_iS7_iS5_PKPS3_ii_l148, !"kernel", i32 1}


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D85544



More information about the llvm-commits mailing list