[PATCH] D110451: [IR] Increase max alignment to 4GB

Leonard Chan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 8 18:10:50 PDT 2021


leonardchan added a comment.

Finally got the stacktrace:

  leonardchan at cp-snakewater:~/llvm-monorepo/llvm-build-1-clang-only-debug$ bin/clang++ "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "--mrelax-relocations" "-disable-free" "-main-file-name" "AArch64SpeculationHardening.cpp" "-mrelocation-model" "pic" "-pic-level" "2" "-mframe-pointer=none" "-fmath-errno" "-fno-rounding-math" "-mconstructor-aliases" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debugger-tuning=gdb" "-ffunction-sections" "-fdata-sections" "-fcoverage-compilation-dir=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins" "-sys-header-deps" "-D" "GTEST_HAS_RTTI=0" "-D" "_GNU_SOURCE" "-D" "__STDC_CONSTANT_MACROS" "-D" "__STDC_FORMAT_MACROS" "-D" "__STDC_LIMIT_MACROS" "-D" "NDEBUG" "-fmacro-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins=../llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins" "-fmacro-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/=" "-fcoverage-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins=../llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins" "-fcoverage-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/=" "-O3" "-Werror=date-time" "-Werror=unguarded-availability-new" "-Wall" "-Wextra" "-Wno-unused-parameter" "-Wwrite-strings" "-Wcast-qual" "-Wmissing-field-initializers" "-Wno-long-long" "-Wc++98-compat-extra-semi" "-Wimplicit-fallthrough" "-Wcovered-switch-default" "-Wno-noexcept-type" "-Wnon-virtual-dtor" "-Wdelete-non-virtual-dtor" "-Wsuggest-override" "-Wno-comment" "-Wstring-conversion" "-Wmisleading-indentation" "-pedantic" "-std=c++14" "-fdeprecated-macro" "-fdebug-compilation-dir=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins" "-fdebug-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins=../llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins" "-fdebug-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/=" "-ferror-limit" "19" "-fvisibility" "hidden" "-fvisibility-inlines-hidden" "-fno-rtti" "-fgnuc-version=4.2.1" "-fcolor-diagnostics" "-vectorize-loops" "-vectorize-slp" "-faddrsig" "-x" "c++" ~/misc/AArch64SpeculationHardening-33e9d2.cpp
  clang++: /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/Support/Alignment.h:77: llvm::Align::Align(uint64_t): Assertion `Value > 0 && "Value must not be 0"' failed.
  PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
  Stack dump:
  0.	Program arguments: bin/clang++ -cc1 -triple x86_64-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -main-file-name AArch64SpeculationHardening.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=none -fmath-errno -fno-rounding-math -mconstructor-aliases -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -ffunction-sections -fdata-sections -fcoverage-compilation-dir=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins -sys-header-deps -D GTEST_HAS_RTTI=0 -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D NDEBUG -fmacro-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins=../llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins -fmacro-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/= -fcoverage-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins=../llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins -fcoverage-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/= -O3 -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -Wmisleading-indentation -pedantic -std=c++14 -fdeprecated-macro -fdebug-compilation-dir=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins -fdebug-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins=../llvm-build-1-two-stage-fuchsia-toolchain/tools/clang/stage2-bins -fdebug-prefix-map=/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/= -ferror-limit 19 -fvisibility hidden -fvisibility-inlines-hidden -fno-rtti -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -x c++ /usr/local/google/home/leonardchan/misc/AArch64SpeculationHardening-33e9d2.cpp
  1.	<eof> parser at end of file
  2.	Optimizer
   #0 0x00000000093983ca llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Support/Unix/Signals.inc:565:11
   #1 0x00000000093984db PrintStackTraceSignalHandler(void*) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Support/Unix/Signals.inc:632:1
   #2 0x0000000009396d93 llvm::sys::RunSignalHandlers() /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Support/Signals.cpp:97:5
   #3 0x0000000009398b15 SignalHandler(int) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Support/Unix/Signals.inc:407:1
   #4 0x00007f7b15b51140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
   #5 0x00007f7b1585ece1 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x3bce1)
   #6 0x00007f7b15848537 abort (/lib/x86_64-linux-gnu/libc.so.6+0x25537)
   #7 0x00007f7b1584840f __tls_get_addr (/lib/x86_64-linux-gnu/libc.so.6+0x2540f)
   #8 0x00007f7b15857662 (/lib/x86_64-linux-gnu/libc.so.6+0x34662)
   #9 0x0000000005d5fa99 llvm::Align::Align(unsigned long) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/Support/Alignment.h:78:5
  #10 0x0000000009045bec (anonymous namespace)::LoopPromoter::doExtraRewritesBeforeFinalDeletion() /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Transforms/Scalar/LICM.cpp:1921:27
  #11 0x00000000094febaa llvm::LoadAndStorePromoter::run(llvm::SmallVectorImpl<llvm::Instruction*> const&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Transforms/Utils/SSAUpdater.cpp:448:28
  #12 0x0000000009042c96 llvm::promoteLoopAccessesToScalars(llvm::SmallSetVector<llvm::Value*, 8u> const&, llvm::SmallVectorImpl<llvm::BasicBlock*>&, llvm::SmallVectorImpl<llvm::Instruction*>&, llvm::SmallVectorImpl<llvm::MemoryAccess*>&, llvm::PredIteratorCache&, llvm::LoopInfo*, llvm::DominatorTree*, llvm::TargetLibraryInfo const*, llvm::Loop*, llvm::MemorySSAUpdater*, llvm::ICFLoopSafetyInfo*, llvm::OptimizationRemarkEmitter*) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Transforms/Scalar/LICM.cpp:2255:7
  #13 0x000000000903c503 (anonymous namespace)::LoopInvariantCodeMotion::runOnLoop(llvm::Loop*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::BlockFrequencyInfo*, llvm::TargetLibraryInfo*, llvm::TargetTransformInfo*, llvm::ScalarEvolution*, llvm::MemorySSA*, llvm::OptimizationRemarkEmitter*, bool) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Transforms/Scalar/LICM.cpp:467:28
  #14 0x000000000903be19 llvm::LICMPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Transforms/Scalar/LICM.cpp:274:7
  #15 0x000000000b065647 llvm::detail::PassModel<llvm::Loop, llvm::LICMPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #16 0x000000000b08a359 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Transforms/Scalar/LoopPassManager.cpp:291:14
  #17 0x000000000b064e57 llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #18 0x0000000008759d1d llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManager.h:525:16
  #19 0x00000000062b8c97 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #20 0x0000000007a77713 llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Analysis/CGSCCPassManager.cpp:551:14
  #21 0x00000000062be887 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CGSCCToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #22 0x0000000007a754fc llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Analysis/CGSCCPassManager.cpp:89:14
  #23 0x0000000008956c97 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #24 0x0000000007a765a9 llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Analysis/CGSCCPassManager.cpp:417:9
  #25 0x0000000008957657 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::DevirtSCCRepeatedPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #26 0x0000000007a7605c llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Analysis/CGSCCPassManager.cpp:282:20
  #27 0x0000000008957147 llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #28 0x0000000008758fcd llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManager.h:525:16
  #29 0x0000000008948f45 llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/lib/Transforms/IPO/Inliner.cpp:1049:3
  #30 0x000000000b047927 llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManagerInternal.h:88:17
  #31 0x0000000008758fcd llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/llvm/include/llvm/IR/PassManager.h:525:16
  #32 0x000000000a0d9740 (anonymous namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction, std::__2::unique_ptr<llvm::raw_pwrite_stream, std::__2::default_delete<llvm::raw_pwrite_stream> >) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/CodeGen/BackendUtil.cpp:1509:5
  #33 0x000000000a0d7299 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::__2::unique_ptr<llvm::raw_pwrite_stream, std::__2::default_delete<llvm::raw_pwrite_stream> >) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/CodeGen/BackendUtil.cpp:1675:5
  #34 0x000000000a544165 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/CodeGen/CodeGenAction.cpp:360:7
  #35 0x000000000cc06171 clang::ParseAST(clang::Sema&, bool, bool) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/Parse/ParseAST.cpp:178:12
  #36 0x000000000a37760c clang::ASTFrontendAction::ExecuteAction() /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/Frontend/FrontendAction.cpp:1065:1
  #37 0x000000000a53fca2 clang::CodeGenAction::ExecuteAction() /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/CodeGen/CodeGenAction.cpp:1094:5
  #38 0x000000000a37703c clang::FrontendAction::Execute() /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/Frontend/FrontendAction.cpp:960:7
  #39 0x000000000a2b5721 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/Frontend/CompilerInstance.cpp:975:23
  #40 0x000000000a52e8b7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:261:8
  #41 0x0000000005d23574 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/tools/driver/cc1_main.cpp:246:13
  #42 0x0000000005d15fab ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/tools/driver/driver.cpp:317:5
  #43 0x0000000005d15075 main /usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-1/clang/tools/driver/driver.cpp:388:5
  #44 0x00007f7b15849d0a __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x26d0a)
  #45 0x0000000005d148ba _start (bin/clang+++0x5d148ba)
  Aborted

I've also uploaded the crash reproducer at https://drive.google.com/drive/folders/1AYJwxpgPCslg7iK8dtLHUp7hkfW65Qnh?usp=sharing.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D110451/new/

https://reviews.llvm.org/D110451



More information about the cfe-commits mailing list