<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61521>61521</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
16.0.0 Segmentation fault optimizing libomptarget-nvptx-sm_X.bc (same as #61399)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hpcpony
</td>
</tr>
</table>
<pre>
I'm getting Segmentation faults trying to build 16.0.0 from source.
```
[user@buildh build.buildh.nocuda]$ cmake \
? -DLLVM_TARGETS_TO_BUILD=X86 \
? -DCMAKE_C_COMPILER=${HOST_GCC}/bin/gcc \
? -DCMAKE_CXX_COMPILER=${HOST_GCC}/bin/g++ \
? -DCMAKE_BUILD_TYPE="Release" \
? -DLIBOMP_ARCH="x86_64" \
? -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN="OFF" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN="OFF" \
? -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
? -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;cross-project-tests;flang;libclc;lld;lldb;mlir;openmp;polly;pstl" \
? -DLLVM_ENABLE_RUNTIMES="compiler-rt;libc;libcxx;libcxxabi;libunwind" \
? -DGCC_INSTALL_PREFIX=${HOST_GCC} \
? -DCMAKE_CXX_LINK_FLAGS="-L${HOST_GCC}/lib64 -Wl,-rpath,${HOST_GCC}/lib64" \
? ../llvm
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
.
.
.
-- Found LIBOMPTARGET_DEP_LIBFFI: /usr/lib64/libffi.so
-- Could NOT find LIBOMPTARGET_DEP_CUDA_DRIVER (missing: LIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES)
-- Could NOT find LIBOMPTARGET_DEP_VEO (missing: LIBOMPTARGET_DEP_VEO_LIBRARIES LIBOMPTARGET_DEP_VEOSINFO_LIBRARIES LIBOMPTARGET_DEP_VEO_INCLUDE_DIRS)
-- OMPT target enabled
-- OpenMP tools dir in libomptarget: /scratch/src/llvm-project-16.0.0.src/build.buildh.nocuda/projects/openmp/runtime/src
-- LIBOMPTARGET: Building offloading runtime library libomptarget.
-- LIBOMPTARGET: Not building aarch64 offloading plugin: machine not found in the system.
-- LIBOMPTARGET: Not building AMDGPU offloading plugin: LIBOMPTARGET_BUILD_AMDGPU_PLUGIN is false
-- LIBOMPTARGET: Not building CUDA offloading plugin: LIBOMPTARGET_BUILD_CUDA_PLUGIN is false
-- LIBOMPTARGET: Not building PPC64 offloading plugin: machine not found in the system.
-- LIBOMPTARGET: Not building PPC64le offloading plugin: machine not found in the system.
-- LIBOMPTARGET: Not building nec-aurora plugin: libveo or libveosinfo not found.
-- LIBOMPTARGET: Building x86_64 offloading plugin.
-- LIBOMPTARGET: Not building aarch64 NextGen offloading plugin: machine not found in the system.
-- LIBOMPTARGET: Not building AMDGPU NextGen offloading plugin: LIBOMPTARGET_BUILD_AMDGPU_PLUGIN is false
-- LIBOMPTARGET: Not building CUDA NextGen offloading plugin: LIBOMPTARGET_BUILD_CUDA_PLUGIN is false
-- LIBOMPTARGET: Not building PPC64 NextGen offloading plugin: machine not found in the system.
-- LIBOMPTARGET: Not building PPC64le NextGen offloading plugin: machine not found in the system.
-- LIBOMPTARGET: Building x86_64 NextGen offloading plugin.
-- LIBOMPTARGET: Building DeviceRTL. Using clang from in-tree build
-- LIBOMPTARGET: Building the llvm-omp-device-info tool
-- LIBOMPTARGET: Building the llvm-omp-kernel-replay tool
.
.
.
[ 35%] Built target omptarget-nvptx-sm_37-bc
[ 35%] Scanning dependencies of target omptarget-nvptx-sm_50-bc
[ 35%] Building LLVM bitcode Configuration.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Debug.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Kernel.cpp-sm_50.bc
[ 35%] Building LLVM bitcode LibC.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Mapping.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Misc.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Parallelism.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Reduction.cpp-sm_50.bc
[ 35%] Building LLVM bitcode State.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Synchronization.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Tasking.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Utils.cpp-sm_50.bc
[ 35%] Building LLVM bitcode Workshare.cpp-sm_50.bc
[ 35%] Linking LLVM bitcode libomptarget-nvptx-sm_50.bc
[ 35%] Internalizing LLVM bitcode libomptarget-nvptx-sm_50.bc
[ 35%] Optimizing LLVM bitcode libomptarget-nvptx-sm_50.bc
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: ../../../../bin/opt -O3 -openmp-opt-disable -attributor-enable=module /scratch/src/llvm-project-16.0.0.src/build.buildh.nocuda/projects/openmp/libomptarget/DeviceRTL/internalized_libomptarget-nvptx-sm_50.bc -o /scratch/src/llvm-project-16.0.0.src/build.buildh.nocuda/projects/openmp/libomptarget/DeviceRTL/libomptarget-nvptx-sm_50.bc
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 opt 0x0000000001e024e1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 225
1 opt 0x0000000001dfff74
2 libpthread.so.0 0x00007f3604cbe630
3 libc.so.6 0x00007f3603ce9f9e
4 opt 0x0000000001d90a2c llvm::StringMapImpl::LookupBucketFor(llvm::StringRef) + 380
5 opt 0x000000000165c1e3 llvm::ValueSymbolTable::createValueName(llvm::StringRef, llvm::Value*) + 243
6 opt 0x00000000016566c6 llvm::Value::setNameImpl(llvm::Twine const&) + 390
7 opt 0x00000000016567f9 llvm::Value::setName(llvm::Twine const&) + 9
8 opt 0x0000000001f62296 llvm::PredicateInfoBuilder::materializeStack(unsigned int&, llvm::SmallVectorImpl<llvm::ValueDFS>&, llvm::Value*) + 2886
9 opt 0x0000000001f6b402 llvm::PredicateInfoBuilder::renameUses(llvm::SmallVectorImpl<llvm::Value*>&) + 3474
10 opt 0x0000000001f6c0d1 llvm::PredicateInfoBuilder::buildPredicateInfo() + 2497
11 opt 0x0000000001f6c3b3 llvm::PredicateInfo::PredicateInfo(llvm::Function&, llvm::DominatorTree&, llvm::AssumptionCache&) + 291
12 opt 0x00000000017d935b
13 opt 0x00000000017d9b6e
14 opt 0x00000000017dbeaa llvm::IPSCCPPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 346
15 opt 0x000000000216083e
16 opt 0x000000000162df2f llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 911
17 opt 0x0000000000813a34 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) + 5796
18 opt 0x00000000007627e1 main + 10161
19 libc.so.6 0x00007f3603ba1555 __libc_start_main + 245
20 opt 0x0000000000806d46
/bin/sh: line 1: 21945 Segmentation fault ../../../../bin/opt -O3 -openmp-opt-disable -attributor-enable=module /scratch/src/llvm-project-16.0.0.src/build.buildh.nocuda/projects/openmp/libomptarget/DeviceRTL/internalized_libomptarget-nvptx-sm_50.bc -o /scratch/src/llvm-project-16.0.0.src/build.buildh.nocuda/projects/openmp/libomptarget/DeviceRTL/libomptarget-nvptx-sm_50.bc
gmake[2]: *** [projects/openmp/libomptarget/DeviceRTL/libomptarget-nvptx-sm_50.bc] Error 139
gmake[1]: *** [projects/openmp/libomptarget/DeviceRTL/CMakeFiles/omptarget-nvptx-sm_50-bc.dir/all] Error 2
gmake: *** [all] Error 2
```
If I try to run the "opt" line by hand I do not get a Segmentation fault.
```
[user@buildh DeviceRTL]$ ../../../../bin/opt -O3 -openmp-opt-disable -attributor-enable=module /scratch/src/llvm-project-16.0.0.src/build.buildh.nocuda/projects/openmp/libomptarget/DeviceRTL/internalized_libomptarget-nvptx-sm_50.bc -o /scratch/src/llvm-project-16.0.0.src/build.buildh.nocuda/projects/openmp/libomptarget/DeviceRTL/libomptarget-nvptx-sm_50.bc
```
I tried this 4 different times (select combinations of 2 different hosts, 2 different compiler gcc 11.3.0, 12.2.0, with and without LIBOMPTARGET_BUILD_X). They all get the Segmentation fault, but it happens on different versions of libomptarget-nvptx-sm_X.bc (X = 35, 37, 50, 70).
I'd be happy to just turn off anything related to NVidia (and GPUs in general) because I don't have any of that hardware or software anyway.
OS: CentOS 7.9.2009
gcc: 11.3.0
cmake: 3.23.2
/bin/sh: 4.2.46(2)-release
gmake: 3.82
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWs9y4rrSfxplo8Jly9jgRRZgIIdvIFBAcnO_DSXLMujGllySnBnO09-SbAgEyCSZO-dsDkVhYfWfX7daUqttrBTbcEpvQdAHweAGV3or5O22JKXgu5tEpLvbMUCdAm6o1oxv4JJuCso11kxwmOEq1wpquTNdWsCkYnkKvdBxHRdmUhRQiUoS6gB3ANxe8xu6zbf-G_QrRSVou5Z7Wwtx6j8OF6RKMQgGALUhKfAzhSCIG05_BFuDyeRxul71FnfD1XK9mq37D-PJAPiDp274ljSe9r4N1_E6nk3n48lwAXwjFnT6f8yWq_VdHIPOAKBRwjhAow0hV_ifnj4oAaA-QP3LUizM9erf86GVgRY0p1hRgNCZgeP-bDpf9xbxHzXpj264DttXKWtfNAp608Hd_GE9nzzcje9r9tloZHgvkscPg94l4ss2jO-Xq95ksp4vhqPx08EXb253BheHbHjf60-G6_li9n_DeLWs1ZEc8w3w-_ba0kLkqkV_aInNPSmUapVS_IcS3dJUaQX8ftZw5CwhOTGNPK1_E-D3i5xJ4PdFSXlRAr9fijzfmavS-SUHHgFbPNyvxtPhHpgoSpZT2ZK6UdZcfvw4NHDC6nbFvzOeXpB_F8fXnHYUQNfDbjK-_7YeTXp3DarW5FL05SwJ27D1rxyguCVLrLcAxVcJ7fDWnxO9jmMo8peivtVqwdWWwhjuPQFZSrlmGSP1YsAUvLt_gJ7n-I57yvP09BkuCJ1rjVYLjkTFU3gSuoPhfD0Z90ejMfB7EKBRpeSrdeaaZcxRAsKDlFhUeQrvZyuYsUvi7DwYLMaPwwUEqFswpZgJs967pAbForcYD5cARR9X9jic_UzJ43D2Kvxi93J8P_oZzXp8H08eBsP1YLw4hWhIocZyQzWkHCc5TV_7Ssqnc2gnI0yZhIzDnCWiKGuGxumKSKzJ1rQkaULnMFvrLcGpey4t8GjUkCqARs10RSNZcc0K2sjcAzo2zSjvG0lmBxJZlgtsmw2nASqx3J0Adq5Kuhe63n6MCIwl2YbtY6llXm0YN5QFJlvGKeRCw8yGJONQbylUO6Vp8UEV9ep8WcPPFnMzdTKcK_oxVSZMP6zoaBv4pJr5PP69LrMKcvo7VXBKWriSQuIj0TlLXqiAQjYtxXgmXhVdF32IznrbPgf-yXC8pz_0HeV_QVi-q-l3hOdnFf5qmP4FrtyH6-9R9Ta2rmr5gIgBfWGELlYTBz6YfQjaHKzO4hlvaUlpbdbPRRnodvkXRdlKrdyWnS5mD_kk-zOVnOYtScsc744EwKPs4NByDkcK6AcABSAYWLF6v7cd9oAWfyn1j5Yq1n6nlZALfEuCOTdwUlpSnlJOGFVQZO-ICtzLog6WmfwSJkwTkVIYC56xTSVtIuSQsqxFOJ8QMaBJtfka6zfr16_xTlgSf41zisuS8S9CnjJFvsY5xxLnOc2ZKr4mYEHTinx9nJYaa_pF1h0nWyk4-_MX4mSF1fOX3f6gWa6-xvovIZ_VFsuf2j5h_PmM-zhnO55kl0WMuaaS45z9-YuCZqVmxVekzCfD3nIIVZUUTEMMk2oDJS2F1FALuNW6VMDvATQCaLRhelslDhHF_pR1mjEDNGJKVdSkwxDbHYHkVUrt4kgkVluYYPKsJT5UV5Yak2eYVuag25RaXAe40VyKjcQFxHJTFZSbU3OvPt29-amrFqLUsDXzYavOwlui1K2UKXMmgC2stWRJpYVs1ccE4A8KkVY5_V1HgJOTBhoddinjoMOI03T9zujAlvgb0P00XF7HC35neisqDdWuSEQOOS6oMkdCylUlKdyJCm7xS7Mr1kTsT2pPYjtRSTjvrf4wqami2gYI5S9MCm5GG75gCUHo2tLG8t_T_mwy_v_hYm1YQOiayCwF4zZEmQYoeg0eCE0suD_c_cejLmpTz8IwZH5P7VTdmEvGtbVoZUISoO4rkcTf10JpSXEBUAhQDBnX9viJ-hChoFbn1eqOP8eq0yzLOu2aFEEzGUu9lRSnjhKO25B2Mj902yShod8UE3xLSgxReCLVkvqERlnU5Iztc3vTyMWIHNm71JLxzRSX46LM61sTIZ6rsl-RZ6pHQp5YXpMvaLa31u82uIL3rQ0D4lH_SPEjziu6tCO_queduUskxZravntc0Gu647eCAOod_N_2a0ThzxCFIQnPBNVRQLVRb31yDGH13WS1RHCl7cA3PogaH3TOHR4GYSeL3tXyAQ1RLb97Lj8LEYqOrZhLmjKCNR3zTNhNjMq6p8CaSmZXFxvXAHUrbsvlaR2_4aljlwXO80dKtJB1cMRvrBiMlsAfnvGdDUi3G9b4o0v4k7aLPoRfUrOMPCizhXQ_AdNAaWA249XezzvPfTdEspC4qfchcHZtPekGqPsaklGnUehd8ADxE_-akku3jq0fVdymcWejMBAF41gLuZKUnvX2lKqK0jDGmGzpkXNQ5DVQ0RnUThr5QdJ0---6rpNGSdisQ177gqSEYnwEaDxfxvF8jlWz_MqKn9g5tXvyuR0c5zvF1BRzvDFjEZ-xvBn6JhS94C0m5IVu199DDt9fO1Caoex4zLB6D8MXMJvvb3RE5O2HufPWEW7X87HfPhIuK24MnLOS5ox_aFW-AnNls4dpXR6wa8R576SucJpQrxfgt1RC5LNKl5UesfyCkF_qvmJOT0q8M3eP_Wp90tQ8hqf0otRre7S3_2p93-wjlOtUj1SyjFG5p0tMz4ev9bAGnWgf4N33ItjthKhDPVhgxi2j53rhPiKiowzjOLdIsBcEAVyb1JSslcZSrw8CULtJe5B7HlBumO4n3iEtV9u6Cskp9EwLeVE7uPA49p_M_u_P7DcFfqYg6CMQDOqnI736C0HQ_x8qCwZwKKWQ0POjU83e_0BzPMXP1Mx6y3Cl2uWkTAI0wnn-igYdY3kL4hLl2zcC7O84g2Oo5c4cTGRV10MBQqLUAKF6IiQ7uDVn4zFM61L8hppz9_mk-NT7B68-qN86-GdC_e0T6nKAQC0ZTaHeMgXbMGVZRqU58WrWHJ8VzSnRkIgiMckdE9wWcNER7VYoAzM-uXl4WL0hZP9oGsXQQw6qW-a8bqsy-4P7hYcTTwBFDoSrLd1BnOc2Nk0Mn0en3ZUqDZmGW1yW1KDkR3BeqFR77Jdd9WSGDqDuEwT-wFayYuh3zG9g8XZcA-bEeQB1UphQq9HOsf9USkNdSfv0AGK-01v7IJXmWBsvC3j_yFKGoVFkbL-bPyjIONxQTiW2e2pCCa4UtROSA9TRddkC850tnG-xuSHT71hSW64QmbZtzHff8e4E4Gxplo6Ycj1bwo4TOch194scIabv-J0Bsl9rfAf5Drq4d7Yd5LRDgLoIoKglm_dtTpcq3-k2zDfprZ9GfoRv6K0XdiIUtEMf3Wxv2zgI0w7xuh2cBlmAUddNSBIR0gmjTtvNbtgtcpHv-l7kRX7HQ47bQX6UZhEmWdfrdhLQdmmBWe6YaeUIubmxpb7b0AuQd5PjhObKvpGFEKffoe0EyGwmN_LWTsWk2ijQdnOmtHqVopnODVj79tWFzEC8FjbfDyOFCwqxmUJ-6PlRBFB0U8n89uslTGvafwMAAP__Sr3EfA">