clangupc / upc2c

Clang based UPC to C Translator
https://clangupc.github.io/clang-upc2c
Other
4 stars 3 forks source link

Transform infinite loop seg fault - lockperf.upc in opt_cupc2c #69

Closed nenadv closed 10 years ago

nenadv commented 10 years ago

upc2c benchmark fails with seg fault while compiling benchmarks/lockperf.upc. Apparently UPC tree rewrite goes into an infinite loop with stack trace of more then 10k entries. I used the following script to invoke upc2c:

#/bin/bash 

echo 'set args -x upc -D__BERKELEY_UPC_FIRST_PREPROCESS__=1 -U__OPTIMIZE__ -D__NO_STRING_INLINES -D__NO_MATH_INLINES -D__NO_INLINE__ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -DGASNET_SEQ -fupc-threads-4  -D__BERKELEY_UPC_RUNTIME__=1 -D__BERKELEY_UPC_RUNTIME_RELEASE__=2 -D__BERKELEY_UPC_RUNTIME_RELEASE_MINOR__=19 -D__BERKELEY_UPC_RUNTIME_RELEASE_PATCHLEVEL__=1 -D__BERKELEY_UPC_SMP_CONDUIT__=1 -D__UPC_COLLECTIVE__=1 -D__UPC_PUPC__=1 -D__UPC_IO__=2 -D__UPC_TICK__=1 -D__UPC_CASTABLE__=1 -D__UPC_NB__=1 -D__BERKELEY_UPC_PSHM__=1 -Qunused-arguments -Wno-duplicate-decl-specifier  -I /eng/upc/dev/nenad/clang-upc2c/bld-upcr/opt_cupc2c/upc-tests/benchmarks  -I /eng/upc/dev/nenad/clang-upc2c/bld-upcr/opt_cupc2c -I /eng/upc/dev/nenad/clang-upc2c/src/upcr -isystem /eng/upc/dev/nenad/clang-upc2c/src/upcr/upcr_preinclude -isystem /eng/upc/dev/nenad/clang-upc2c/bld-upcr/opt_cupc2c/upcr_geninclude2 -I/eng/upc/dev/nenad/clang-upc2c/src/upcr/gasnet -I/eng/upc/dev/nenad/clang-upc2c/src/upcr/gasnet/smp-conduit -I/eng/upc/dev/nenad/clang-upc2c/src/upcr/gasnet/other -I/eng/upc/dev/nenad/clang-upc2c/src/upcr/gasnet/extended-ref -I/eng/upc/dev/nenad/clang-upc2c/bld-upcr/opt_cupc2c/gasnet  lockperf.upc' > .gdbinit
gdb -iex 'add-auto-load-safe-path .' /eng/upc/dev/nenad/clang-upc2c/bld/bin/upc2c

I think that the same happens with upc_collectivev/bupc_collectivev_test.upc test. Did not verify but symptoms are the same.

PHHargrove commented 10 years ago

Nenad,

This appears to be the same as issue #64

-Paul