Skip to content

12.0.0: polly is not LTO ready #49365

@kloczek

Description

@kloczek
mannequin
Bugzilla Link 50021
Resolution FIXED
Resolved on May 03, 2021 17:20
Version unspecified
OS Windows NT
Blocks #48661
CC @Meinersbur
Fixed by commit(s) 90e5ce0 89b5934 b8e4d4e 8b2c019

Extended Description

Looks like polly 12.0.0 is not LTO ready.
Below was reproduced using gcc 11.0.1 from fedora rawhide.

color=
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
make -f lib/External/CMakeFiles/PollyPPCG.dir/build.make lib/External/CMakeFiles/PollyPPCG.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
[ 88%] Linking C shared library libPollyPPCG.so
cd /home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu/lib/External && /usr/bin/cmake -E cmake_link_script CMakeFiles/PollyPPCG.dir/link.txt --verbose=1
/usr/bin/gcc -fPIC -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -fno-strict-aliasing -fPIC -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-comment -ffunction-sections -fdata-sections -fPIC -DNDEBUG -Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,-z,defs -Wl,-z,nodelete -shared -Wl,-soname,libPollyPPCG.so -o libPollyPPCG.so CMakeFiles/PollyPPCG.dir/ppcg/cuda.c.o CMakeFiles/PollyPPCG.dir/ppcg/cuda_common.c.o CMakeFiles/PollyPPCG.dir/ppcg/external.c.o CMakeFiles/PollyPPCG.dir/ppcg/gpu_array_tile.c.o CMakeFiles/PollyPPCG.dir/ppcg/gpu.c.o CMakeFiles/PollyPPCG.dir/ppcg/gpu_group.c.o CMakeFiles/PollyPPCG.dir/ppcg/gpu_hybrid.c.o CMakeFiles/PollyPPCG.dir/ppcg/gpu_print.c.o CMakeFiles/PollyPPCG.dir/ppcg/gpu_tree.c.o CMakeFiles/PollyPPCG.dir/ppcg/grouping.c.o CMakeFiles/PollyPPCG.dir/ppcg/hybrid.c.o CMakeFiles/PollyPPCG.dir/ppcg/ppcg.c.o CMakeFiles/PollyPPCG.dir/ppcg/ppcg_options.c.o CMakeFiles/PollyPPCG.dir/ppcg/print.c.o CMakeFiles/PollyPPCG.dir/ppcg/schedule.c.o CMakeFiles/PollyPPCG.dir/ppcg/util.c.o -Wl,-rpath,/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu/lib/External: libPollyISL.so
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/ppcg/print.c:54:14: warning: type of ‘isl_id_alloc’ does not match original declaration [-Wlto-type-mismatch]
54 | id = isl_id_alloc(ctx, note_name, NULL);
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:22:20: note: return value type mismatch
22 | __isl_give isl_id *isl_id_alloc(isl_ctx *ctx,
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:22:20: note: ‘isl_id_alloc’ was previously declared here
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:22:20: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/ppcg/print.c:164:29: warning: type of ‘isl_id_set_free_user’ does not match original declaration [-Wlto-type-mismatch]
164 | macros_id = isl_id_set_free_user(macros_id, &ppcg_macros_free);
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:31:20: note: return value type mismatch
31 | __isl_give isl_id *isl_id_set_free_user(__isl_take isl_id *id,
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:31:20: note: ‘isl_id_set_free_user’ was previously declared here
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:31:20: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/ppcg/print.c:78:44: warning: type of ‘isl_id_copy’ does not match original declaration [-Wlto-type-mismatch]
78 | return isl_printer_set_note(p, id, isl_id_copy(id));
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:24:20: note: return value type mismatch
24 | __isl_give isl_id *isl_id_copy(isl_id *id);
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:24:20: note: ‘isl_id_copy’ was previously declared here
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:24:20: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/pet/include/pet.h:20:1: error: function ‘pet_options_args’ redeclared as variable
20 | ISL_ARG_DECL(pet_options, struct pet_options, pet_options_args)
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/ppcg/external.c:107:6: note: previously declared here
107 | void pet_options_args() {
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/ppcg/print.c:191:18: warning: type of ‘isl_id_get_user’ does not match original declaration [-Wlto-type-mismatc ]
191 | macros = isl_id_get_user(id);
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:27:7: note: return value type mismatch
27 | void *isl_id_get_user(__isl_keep isl_id *id);
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:27:7: note: ‘isl_id_get_user’ was previously declared here
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:27:7: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/ppcg/print.c:56:9: warning: type of ‘isl_id_free’ does not match original declaration [-Wlto-type-mismatch]
56 | isl_id_free(id);
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:25:20: note: return value type mismatch
25 | __isl_null isl_id *isl_id_free(__isl_take isl_id *id);
| ^
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:25:20: note: ‘isl_id_free’ was previously declared here
/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External/isl/include/isl/id.h:25:20: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
lto1: fatal error: errors during merging of translation units
compilation terminated.
lto-wrapper: fatal error: /usr/bin/gcc returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[2]: *** [lib/External/CMakeFiles/PollyPPCG.dir/build.make:332: lib/External/libPollyPPCG.so] Error 1
make[2]: Target 'lib/External/CMakeFiles/PollyPPCG.dir/build' not remade because of errors.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:564: lib/External/CMakeFiles/PollyPPCG.dir/all] Error 2
make -f lib/External/CMakeFiles/polly-isl-test.dir/build.make lib/External/CMakeFiles/polly-isl-test.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src /home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/lib/External /home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu/lib/External /home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu/lib/External/CMakeFiles/polly-isl-test.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
make -f lib/External/CMakeFiles/polly-isl-test.dir/build.make lib/External/CMakeFiles/polly-isl-test.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
make[2]: Nothing to be done for 'lib/External/CMakeFiles/polly-isl-test.dir/build'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
[ 90%] Built target polly-isl-test
make[1]: Target 'all' not remade because of errors.
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu'
make: *** [Makefile:152: all] Error 2
make: Target 'default_target' not remade because of errors.

cmake settings:

[tkloczko@barrel x86_64-redhat-linux-gnu]$ cmake -L
CMake Warning:
No source or binary directory provided. Both will be assumed to be the
same as the current working directory, but note that this warning will
become a fatal error in future CMake releases.

CMake Error: The source directory "/home/tkloczko/rpmbuild/BUILD/polly-12.0.0.src/x86_64-redhat-linux-gnu" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
-- Cache values
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr
LLVM_DIR:PATH=/usr/lib64/cmake/llvm
LLVM_ENABLE_IDE:BOOL=OFF
LLVM_ENABLE_LTO:STRING=OFF
LLVM_EXPORT_SYMBOLS_FOR_PLUGINS:BOOL=OFF
LLVM_EXTERNAL_LIT:STRING=/usr/bin/lit
LLVM_FILECHECK:FILEPATH=/usr/bin/FileCheck
LLVM_FORCE_ENABLE_STATS:BOOL=OFF
LLVM_NOT:FILEPATH=/usr/bin/not
LLVM_OPT:FILEPATH=/usr/bin/opt
LLVM_PARALLEL_COMPILE_JOBS:STRING=
LLVM_PARALLEL_LINK_JOBS:STRING=
LLVM_POLLY_LINK_INTO_TOOLS:BOOL=OFF
LLVM_SOURCE_PREFIX:STRING=
LLVM_SOURCE_ROOT:PATH=/home/tkloczko/rpmbuild/BUILD/llvm-12.0.0.src
LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO:BOOL=OFF
LLVM_USE_RELATIVE_PATHS_IN_FILES:BOOL=OFF
POLLY_BUNDLED_ISL:BOOL=ON
POLLY_ENABLE_GPGPU_CODEGEN:BOOL=OFF
SPHINX_EXECUTABLE:FILEPATH=/usr/bin/sphinx-build
SPHINX_OUTPUT_HTML:BOOL=ON
SPHINX_OUTPUT_MAN:BOOL=ON
SPHINX_WARNINGS_AS_ERRORS:BOOL=OFF

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillapolly

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions