https://bugs.llvm.org/show_bug.cgi?id=47134

            Bug ID: 47134
           Summary: OpenMP support is broken for JIT-compiled modules
           Product: OpenMP
           Version: unspecified
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Clang Compiler Support
          Assignee: unassignedclangb...@nondot.org
          Reporter: glev...@gmail.com
                CC: llvm-bugs@lists.llvm.org

A commit from June 1, 2020 breaks the JIT compilation of C++ modules using
OpenMP parallel/for pragmas. This affects top-of-tree users as well as users of
branch 11.x.

The commit is 1a4fb2edcb908d6c9141036d29b46a347b1b6f18:

   Summary: This changes Clang's generation of OpenMP runtime functions
   to use the types and functions defined in OpenMPKinds and
   OpenMPConstants. New OpenMP runtime function information should now be
   added to OMPKinds.def. This patch also changed the definitions of
   __kmpc_push_num_teams and __kmpc_copyprivate to match those found in
   the runtime.

When using a release version of LLVM, if you use Orc v2 to JIT compile a module
containing a parallel/for pragma, the code compiles and seems to work, but if
you try to save the bitcode to file, you get the following error:

   Invalid record (Producer: 'LLVM11.0.0' Reader: 'LLVM 11.0.0')

With a debug version of LLVM, compilation fails with a broken assertion at line
455 of llvm/lib/IR/Instructions.cpp: "Calling a function with a bad signature!"

Johannes Doerfert's patch (https://reviews.llvm.org/D80735) seems to fix the
problem.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to