clangupc / clang-upc

Clang UPC Front-End
https://clangupc.github.io/
Other
17 stars 5 forks source link

[ppc64] ICE building libupc #52

Closed PHHargrove closed 10 years ago

PHHargrove commented 10 years ago

Today's latest code doesn't build on Linux/ppc64. This is the first time I've tried in quite a while.

I am seeing an internal compiler error from the just-built clang when it is trying to compile upc_barrier.upc in the smp runtime.

[ 95%] Built target upc-link-script
[ 95%] Building C object tools/clang/runtime/libupc/CMakeFiles/upc-s.dir/smp/upc_barrier.upc.o
fatal error: error in backend: Cannot select: 0x1001078d000: i64 = zero_extend 0x1001078c4f0 [ORD=36] [ID=62]
  0x1001078c4f0: i64 = add 0x1001078bae0, 0x1001078aee0 [ORD=27] [ID=60]
    0x1001078bae0: i64 = PPCISD::TOC_ENTRY 0x100107814e0, 0x1001078c2f0 [ORD=27] [ID=35]
      0x100107814e0: i64 = TargetGlobalAddress<[1 x %struct.barrier_block]* @__upc_btree> 0 [ORD=27] [ID=23]
      0x1001078c2f0: i64 = Register %X2 [ID=24]
    0x1001078aee0: i64 = shl 0x1001078bff0, 0x10010780de0 [ORD=26] [ID=57]
      0x1001078bff0: i64 = select_cc 0x1001078c1f0, 0x100107810e0, 0x1001078c0f0, 0x100107811e0, 0x1001078ade0 [ORD=20] [ID=53]
        0x1001078c1f0: i64 = sub 0x10010780fe0, 0x10010780ee0 [ORD=15] [ID=49]
          0x10010780fe0: i64,ch = load 0x10010761238, 0x1001078b3e0, 0x100107813e0<LD4[@MYTHREAD], sext from i32> [ORD=9] [ID=42]
            0x1001078b3e0: i64 = PPCISD::TOC_ENTRY 0x1001078afe0, 0x1001078c2f0 [ORD=8] [ID=37]
              0x1001078afe0: i64 = TargetGlobalAddress<i32* @MYTHREAD> 0 [ORD=8] [ID=26]
              0x1001078c2f0: i64 = Register %X2 [ID=24]
            0x100107813e0: i64 = undef [ID=3]
          0x10010780ee0: i64 = mul 0x100107811e0, 0x100107815e0 [ORD=15] [ID=46]
            0x100107811e0: i64 = sdiv 0x10010780fe0, 0x100107815e0 [ORD=14] [ID=44]
              0x10010780fe0: i64,ch = load 0x10010761238, 0x1001078b3e0, 0x100107813e0<LD4[@MYTHREAD], sext from i32> [ORD=9] [ID=42]
                0x1001078b3e0: i64 = PPCISD::TOC_ENTRY 0x1001078afe0, 0x1001078c2f0 [ORD=8] [ID=37]
                  0x1001078afe0: i64 = TargetGlobalAddress<i32* @MYTHREAD> 0 [ORD=8] [ID=26]
                  0x1001078c2f0: i64 = Register %X2 [ID=24]
                0x100107813e0: i64 = undef [ID=3]
              0x100107815e0: i64,ch = load 0x10010761238, 0x1001078b1e0, 0x100107813e0<LD4[@THREADS], zext from i32> [ORD=11] [ID=41]
                0x1001078b1e0: i64 = PPCISD::TOC_ENTRY 0x1001078c3f0, 0x1001078c2f0 [ORD=10] [ID=36]
                  0x1001078c3f0: i64 = TargetGlobalAddress<i32* @THREADS> 0 [ORD=10] [ID=25]
                  0x1001078c2f0: i64 = Register %X2 [ID=24]
                0x100107813e0: i64 = undef [ID=3]
            0x100107815e0: i64,ch = load 0x10010761238, 0x1001078b1e0, 0x100107813e0<LD4[@THREADS], zext from i32> [ORD=11] [ID=41]
              0x1001078b1e0: i64 = PPCISD::TOC_ENTRY 0x1001078c3f0, 0x1001078c2f0 [ORD=10] [ID=36]
                0x1001078c3f0: i64 = TargetGlobalAddress<i32* @THREADS> 0 [ORD=10] [ID=25]
                0x1001078c2f0: i64 = Register %X2 [ID=24]
              0x100107813e0: i64 = undef [ID=3]
        0x100107810e0: i64 = Constant<0> [ID=2]
        0x1001078c0f0: i64 = add 0x100107811e0, 0x1001078bbe0 [ORD=19] [ID=47]
          0x100107811e0: i64 = sdiv 0x10010780fe0, 0x100107815e0 [ORD=14] [ID=44]
            0x10010780fe0: i64,ch = load 0x10010761238, 0x1001078b3e0, 0x100107813e0<LD4[@MYTHREAD], sext from i32> [ORD=9] [ID=42]
              0x1001078b3e0: i64 = PPCISD::TOC_ENTRY 0x1001078afe0, 0x1001078c2f0 [ORD=8] [ID=37]
                0x1001078afe0: i64 = TargetGlobalAddress<i32* @MYTHREAD> 0 [ORD=8] [ID=26]
                0x1001078c2f0: i64 = Register %X2 [ID=24]
              0x100107813e0: i64 = undef [ID=3]
            0x100107815e0: i64,ch = load 0x10010761238, 0x1001078b1e0, 0x100107813e0<LD4[@THREADS], zext from i32> [ORD=11] [ID=41]
              0x1001078b1e0: i64 = PPCISD::TOC_ENTRY 0x1001078c3f0, 0x1001078c2f0 [ORD=10] [ID=36]
                0x1001078c3f0: i64 = TargetGlobalAddress<i32* @THREADS> 0 [ORD=10] [ID=25]
                0x1001078c2f0: i64 = Register %X2 [ID=24]
              0x100107813e0: i64 = undef [ID=3]
          0x1001078bbe0: i64 = Constant<-1> [ID=20]
        0x100107811e0: i64 = sdiv 0x10010780fe0, 0x100107815e0 [ORD=14] [ID=44]
          0x10010780fe0: i64,ch = load 0x10010761238, 0x1001078b3e0, 0x100107813e0<LD4[@MYTHREAD], sext from i32> [ORD=9] [ID=42]
            0x1001078b3e0: i64 = PPCISD::TOC_ENTRY 0x1001078afe0, 0x1001078c2f0 [ORD=8] [ID=37]
              0x1001078afe0: i64 = TargetGlobalAddress<i32* @MYTHREAD> 0 [ORD=8] [ID=26]
              0x1001078c2f0: i64 = Register %X2 [ID=24]
            0x100107813e0: i64 = undef [ID=3]
          0x100107815e0: i64,ch = load 0x10010761238, 0x1001078b1e0, 0x100107813e0<LD4[@THREADS], zext from i32> [ORD=11] [ID=41]
            0x1001078b1e0: i64 = PPCISD::TOC_ENTRY 0x1001078c3f0, 0x1001078c2f0 [ORD=10] [ID=36]
              0x1001078c3f0: i64 = TargetGlobalAddress<i32* @THREADS> 0 [ORD=10] [ID=25]
              0x1001078c2f0: i64 = Register %X2 [ID=24]
            0x100107813e0: i64 = undef [ID=3]
      0x10010780de0: i32 = Constant<4> [ID=21]
In function: __upc_notify
clang-3.4: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 3.4  (UPC 3.4.0-1 20140528)
Target: powerpc64-unknown-linux-gnu
Thread model: posix
clang-3.4: note: diagnostic msg: PLEASE submit a bug report to  and include the crash backtrace, preprocessed source, and associated run script.
0  clang     0x00000000116d59e4 llvm::sys::PrintStackTrace(_IO_FILE*) + 4259472620
1  clang     0x00000000116d5d74
2  clang     0x00000000116d53e0
3            0x00000fffb4440418 __kernel_sigtramp_rt64 + 0
4  clang     0x00000000107db568
5  clang     0x0000000011a25dfc clang::driver::Driver::GetTemporaryPath(llvm::StringRef, char const*) const + 4262478908
6  clang     0x0000000011a240c8 clang::driver::Driver::GetNamedOutputPath(clang::driver::Compilation&, clang::driver::JobAction const&, char const*, char const*, bool, bool) const + 4262471504
7  clang     0x0000000011a23624 clang::driver::Driver::BuildJobsForAction(clang::driver::Compilation&, clang::driver::Action const*, clang::driver::ToolChain const*, char const*, bool, bool, char const*, clang::driver::InputInfo&) const + 4262468828
8  clang     0x0000000011a22840 clang::driver::Driver::BuildJobs(clang::driver::Compilation&) const + 4262465344
9  clang     0x0000000011a1d588 clang::driver::Driver::generateCompilationDiagnostics(clang::driver::Compilation&, clang::driver::Command const*) + 4262444648
10 clang     0x00000000107b5d3c main + 4245463684
11 libc.so.6 0x00000080c9b2bcd8
12 libc.so.6 0x00000080c9b2bed0 __libc_start_main + 4293374464
Stack dump:
0.      Program arguments: /home/hargrov1/upcnightly/llvm-upc-cmake/bld/bin/clang -DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_REWRITER -DCLANG_ENABLE_STATIC_ANALYZER -DGUPCR_PTS_PHASE_SIZE=32 -DGUPCR_PTS_STRUCT_REP=1 -DGUPCR_PTS_THREAD_SIZE=32 -DGUPCR_PTS_VADDR_FIRST=1 -DGUPCR_PTS_VADDR_SIZE=64 -DIN_TARGET_LIBS=1 -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-optimize-sibling-calls -fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers -pedantic -Wno-long-long -I/home/hargrov1/upcnightly/llvm-upc-cmake/bld/tools/clang/runtime/libupc -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/bld/tools/clang/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/bld/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc/collectives -Wno-gnu -Wno-language-extension-token -fupc-pts=struct -fupc-pts-vaddr-order=first -o CMakeFiles/upc-s.dir/smp/upc_barrier.upc.o -c /home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc/smp/upc_barrier.upc
1.      Building compilation jobs
2.      Building compilation jobs
3.      Computing output path
/bin/sh: line 1: 17582 Segmentation fault      /home/hargrov1/upcnightly/llvm-upc-cmake/bld/bin/clang -DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_REWRITER -DCLANG_ENABLE_STATIC_ANALYZER -DGUPCR_PTS_PHASE_SIZE=32 -DGUPCR_PTS_STRUCT_REP=1 -DGUPCR_PTS_THREAD_SIZE=32 -DGUPCR_PTS_VADDR_FIRST=1 -DGUPCR_PTS_VADDR_SIZE=64 -DIN_TARGET_LIBS=1 -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-optimize-sibling-calls -fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers -pedantic -Wno-long-long -I/home/hargrov1/upcnightly/llvm-upc-cmake/bld/tools/clang/runtime/libupc -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/bld/tools/clang/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/bld/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc/include -I/home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc/collectives -Wno-gnu -Wno-language-extension-token -fupc-pts=struct -fupc-pts-vaddr-order=first -o CMakeFiles/upc-s.dir/smp/upc_barrier.upc.o -c /home/hargrov1/upcnightly/llvm-upc-cmake/src/tools/clang/runtime/libupc/smp/upc_barrier.upc
make[2]: *** [tools/clang/runtime/libupc/CMakeFiles/upc-s.dir/smp/upc_barrier.upc.o] Error 139
make[1]: *** [tools/clang/runtime/libupc/CMakeFiles/upc-s.dir/all] Error 2
make: *** [all] Error 2
PHHargrove commented 10 years ago

Fix in 358cae7 worked for me. Thanks, Nenad.

-Paul