That seems like a good idea, because currently the CMAKE_ INTERPROCEDURAL_OPTIMIZATION option is broken.
On Tuesday, August 15, 2017 at 8:11:47 PM UTC+2, Derek Schuff wrote: > > Interesting, I didn't know that about CMake. We don't support thinLTO yet, > but we might want to update our CMake file or accept/ignore/use-real-lto > for -flto=thin in the emscripten driver for compatibility. > > On Fri, Aug 4, 2017 at 11:40 AM Dirk Vanden Boer <[email protected] > <javascript:>> wrote: > >> The thin option seems to be the problem indeed. Recent cmake (3.9) >> assumes -flto=thin is supported for clang >= 3.9. (thin lto has much faster >> linking times then lto). After modifying the cmake detection to use the >> regular -flto flag in the case of emscripten things build again. >> >> >> On Friday, August 4, 2017 at 7:27:07 PM UTC+2, Alon Zakai wrote: >> >>> To use LTO, you can pass emcc the --llvm-lto flag (with value 1 above, >>> see emcc --help). >>> >>> Looks like that CMake flag turns on -flto=thin which I don't know much >>> about. It may require a special build of LLVM, one that includes the pass >>> it is complaining about. >>> >> >>> On Fri, Aug 4, 2017 at 2:03 AM, Dirk Vanden Boer <[email protected]> >>> wrote: >>> >>>> If I enable lto using >>>> cmake: -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON >>>> >>>> Emscripten fails with the following error, is lto supported? >>>> >>>> [1/17] Building CXX object util/CMakeFiles/gdxutil.dir/colormap.cpp.o >>>> FAILED: util/CMakeFiles/gdxutil.dir/colormap.cpp.o >>>> /Users/dirk/Projects/emsdk/emscripten/incoming/em++ >>>> -DSPDLOG_FMT_EXTERNAL -I../../util -I../../util/include -I. -isystem >>>> ../local-toolchain-wasm/include -isystem >>>> ../local-toolchain-wasm/include/eigen3 -Wall -Wextra -Wpedantic >>>> -Wfatal-errors -Wno-unknown-pragmas -fdiagnostics-color -stdlib=libc++ >>>> -DNDEBUG -O2 -flto=thin -fPIC -fvisibility=hidden -std=c++1z -MD -MT >>>> util/CMakeFiles/gdxutil.dir/colormap.cpp.o -MF >>>> util/CMakeFiles/gdxutil.dir/colormap.cpp.o.d -o >>>> util/CMakeFiles/gdxutil.dir/colormap.cpp.o -c ../../util/colormap.cpp >>>> Pass 'Module Summary Analysis' is not initialized. >>>> Verify if there is a pass dependency cycle. >>>> Required Passes: >>>> Error: Required pass not found! Possible causes: >>>> - Pass misconfiguration (e.g.: missing macros) >>>> - Corruption of the global PassRegistry >>>> Assertion failed: (PI && "Expected required passes to be initialized"), >>>> function schedulePass, file >>>> /Users/dirk/Projects/emsdk/clang/fastcomp/src/lib/IR/LegacyPassManager.cpp, >>>> >>>> line 647. >>>> 0 clang-4.0 0x0000000104822ae8 >>>> llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40 >>>> 1 clang-4.0 0x0000000104821ca6 >>>> llvm::sys::RunSignalHandlers() + 86 >>>> 2 clang-4.0 0x0000000104823139 SignalHandler(int) + 361 >>>> 3 libsystem_platform.dylib 0x00007fffcdfc2b3a _sigtramp + 26 >>>> 4 libsystem_malloc.dylib 0x00007fffcdf3691f >>>> tiny_malloc_from_free_list + 431 >>>> 5 libsystem_c.dylib 0x00007fffcde47420 abort + 129 >>>> 6 libsystem_c.dylib 0x00007fffcde0e893 basename_r + 0 >>>> 7 clang-4.0 0x0000000104335e02 >>>> llvm::PMTopLevelManager::schedulePass(llvm::Pass*) + 2082 >>>> 8 clang-4.0 0x0000000104335718 >>>> llvm::PMTopLevelManager::schedulePass(llvm::Pass*) + 312 >>>> 9 clang-4.0 0x0000000104a0a5bf >>>> clang::EmitBackendOutput(clang::DiagnosticsEngine&, >>>> clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, >>>> clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout >>>> const&, llvm::Module*, clang::BackendAction, >>>> std::__1::unique_ptr<llvm::raw_pwrite_stream, >>>> std::__1::default_delete<llvm::raw_pwrite_stream> >) + 11503 >>>> 10 clang-4.0 0x0000000104bebe70 >>>> clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 1056 >>>> 11 clang-4.0 0x00000001054d53c2 >>>> clang::ParseAST(clang::Sema&, bool, bool) + 466 >>>> 12 clang-4.0 0x0000000104e2365c >>>> clang::FrontendAction::Execute() + 76 >>>> 13 clang-4.0 0x0000000104de4bb1 >>>> clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1201 >>>> 14 clang-4.0 0x0000000104e7a481 >>>> clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 4865 >>>> 15 clang-4.0 0x0000000103bb93b3 >>>> cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1235 >>>> 16 clang-4.0 0x0000000103bb7a49 main + 10297 >>>> 17 libdyld.dylib 0x00007fffcddb3235 start + 1 >>>> 18 libdyld.dylib 0x0000000000000062 start + 841272878 >>>> Stack dump: >>>> 0. Program arguments: >>>> /Users/dirk/Projects/emsdk/clang/fastcomp/build_incoming_64/bin/clang-4.0 >>>> -cc1 -triple asmjs-unknown-emscripten -emit-llvm-bc -flto=thin >>>> -disable-free -main-file-name colormap.cpp -mrelocation-model pic >>>> -pic-level 2 -mthread-model posix -mdisable-fp-elim -no-integrated-as >>>> -mconstructor-aliases -target-linker-version 278.4 -dwarf-column-info >>>> -debugger-tuning=gdb -coverage-notes-file >>>> /Users/dirk/Projects/gdx-core/build/gdx-wasm/util/CMakeFiles/gdxutil.dir/colormap.cpp.gcno >>>> >>>> -nostdsysteminc -nobuiltininc -resource-dir >>>> /Users/dirk/Projects/emsdk/clang/fastcomp/build_incoming_64/bin/../lib/clang/4.0.0 >>>> >>>> -dependency-file util/CMakeFiles/gdxutil.dir/colormap.cpp.o.d >>>> -sys-header-deps -MT util/CMakeFiles/gdxutil.dir/colormap.cpp.o -isystem >>>> ../local-toolchain-wasm/include -isystem >>>> ../local-toolchain-wasm/include/eigen3 -D __EMSCRIPTEN_major__=1 -D >>>> __EMSCRIPTEN_minor__=37 -D __EMSCRIPTEN_tiny__=16 -D _LIBCPP_ABI_VERSION=2 >>>> -D SPDLOG_FMT_EXTERNAL -I ../../util -I ../../util/include -I . -D NDEBUG >>>> -stdlib=libc++ -O2 -Werror=implicit-function-declaration -Wall -Wextra >>>> -Wpedantic -Wfatal-errors -Wno-unknown-pragmas -std=c++1z >>>> -fdeprecated-macro -fno-dwarf-directory-asm -fdebug-compilation-dir >>>> /Users/dirk/Projects/gdx-core/build/gdx-wasm -ferror-limit 19 >>>> -fmessage-length 0 -fvisibility hidden -fobjc-runtime=gnustep >>>> -fcxx-exceptions -fexceptions -fdiagnostics-show-option >>>> -fcolor-diagnostics >>>> -vectorize-loops -vectorize-slp -nobuiltininc -nostdsysteminc >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/include/libcxx >>>> >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/lib/libcxxabi/include >>>> >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/include/compat >>>> >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/include >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/include/SSE >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/include/libc >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/lib/libc/musl/arch/emscripten >>>> >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/local/include >>>> >>>> -isystem/Users/dirk/Projects/emsdk/emscripten/incoming/system/include/SDL >>>> -disable-llvm-optzns -o util/CMakeFiles/gdxutil.dir/colormap.cpp.o -x c++ >>>> ../../util/colormap.cpp >>>> 1. <eof> parser at end of file >>>> clang-4.0: fatal error: unable to execute command: Abort trap: 6 >>>> clang version 4.0.0 ( >>>> https://github.com/kripken/emscripten-fastcomp-clang.git >>>> feff46c2a99f012dfdd291f02636fd386d132969) ( >>>> https://github.com/kripken/emscripten-fastcomp.git >>>> d11ecd94546630d1e087de93ac95eccb2630b5e3) (emscripten 1.37.16 : 1.37.16) >>>> Target: asmjs-unknown-emscripten >>>> Thread model: posix >>>> InstalledDir: >>>> /Users/dirk/Projects/emsdk/clang/fastcomp/build_incoming_64/bin >>>> ERROR:root:compiler frontend failed to generate LLVM bitcode, halting >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "emscripten-discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
