[llvm-bugs] [Bug 46661] New: ICE in backend: Instruction Combining seems stuck in an infinite loop after 100 iterations.

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jul 9 11:56:18 PDT 2020


https://bugs.llvm.org/show_bug.cgi?id=46661

            Bug ID: 46661
           Summary: ICE in backend: Instruction Combining seems stuck in
                    an infinite loop after 100 iterations.
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: Vsevolod.Livinskij at frtk.ru
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

>$ clang++ -c -O3 func.cpp
fatal error: error in backend: Instruction Combining seems stuck in an infinite
loop after 100 iterations.
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: clang++ -c -O3 func.cpp 
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'CallGraph Pass Manager' on module 'func.cpp'.
4.      Running pass 'Combine redundant instructions' on function '@_Z4testv'
 #0 0x000056272edd545e llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/clang-11+0x23a445e)
 #1 0x000056272edd3234 llvm::sys::RunSignalHandlers() (/clang-11+0x23a2234)
 #2 0x000056272edd34b1 llvm::sys::CleanupOnSignal(unsigned long)
(/clang-11+0x23a24b1)
 #3 0x000056272ed40373 llvm::CrashRecoveryContext::HandleExit(int)
(/clang-11+0x230f373)
 #4 0x000056272edcba7b llvm::sys::Process::Exit(int) (/clang-11+0x239aa7b)
 #5 0x000056272d6626e1 LLVMErrorHandler(void*, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool)
(/clang-11+0xc316e1)
 #6 0x000056272ed47bec llvm::report_fatal_error(llvm::Twine const&, bool)
(/clang-11+0x2316bec)
 #7 0x000056272e8b71d9 combineInstructionsOverFunction(llvm::Function&,
llvm::InstCombineWorklist&, llvm::AAResults*, llvm::AssumptionCache&,
llvm::TargetLibraryInfo&, llvm::DominatorTree&,
llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*,
llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) (/clang-11+0x1e861d9)
 #8 0x000056272e8b8be0
llvm::InstructionCombiningPass::runOnFunction(llvm::Function&)
(/clang-11+0x1e87be0)
 #9 0x000056272e70536c llvm::FPPassManager::runOnFunction(llvm::Function&)
(/clang-11+0x1cd436c)
#10 0x0000562731a9e6ef (anonymous
namespace)::CGPassManager::runOnModule(llvm::Module&) (/clang-11+0x506d6ef)
#11 0x000056272e705de7 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/clang-11+0x1cd4de7)
#12 0x000056272f083ad6 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >) (/clang-11+0x2652ad6)
#13 0x000056272fd6b811
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/clang-11+0x333a811)
#14 0x0000562730ac7009 clang::ParseAST(clang::Sema&, bool, bool)
(/clang-11+0x4096009)
#15 0x000056272fd6a318 clang::CodeGenAction::ExecuteAction()
(/clang-11+0x3339318)
#16 0x000056272f6adba9 clang::FrontendAction::Execute() (/clang-11+0x2c7cba9)
#17 0x000056272f664abe
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/clang-11+0x2c33abe)
#18 0x000056272f781bb0
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/clang-11+0x2d50bb0)
#19 0x000056272d663441 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/clang-11+0xc32441)
#20 0x000056272d660778 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
(/clang-11+0xc2f778)
#21 0x000056272f5268d9 void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const::'lambda'()>(long) (/clang-11+0x2af58d9)
#22 0x000056272ed4023c
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/clang-11+0x230f23c)
#23 0x000056272f5271f6
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const (.part.0) (/clang-11+0x2af61f6)
#24 0x000056272f4fe91c
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const (/clang-11+0x2acd91c)
#25 0x000056272f4ff256
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/clang-11+0x2ace256)
#26 0x000056272f5085d9
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/clang-11+0x2ad75d9)
#27 0x000056272d5e31b9 main (/clang-11+0xbb21b9)
#28 0x00007fa0257161e3 __libc_start_main
/build/glibc-5mDdLG/glibc-2.30/csu/../csu/libc-start.c:342:3
#29 0x000056272d6602ce _start (/clang-11+0xc2f2ce)
clang-11: error: clang frontend command failed with exit code 70 (use -v to see
invocation)
clang version 11.0.0 (https://github.com/llvm/llvm-project.git
7fc279ca3d414c0997998cb30d1adc2c63c837a5)
Target: x86_64-unknown-linux-gnu
Thread model: posix

Reproducer:
extern short var_0;
extern int var_1;
extern long var_5;
extern char var_7;
extern int arr_2[];
extern int arr_3[44];
extern short arr_4[];
void test() {
  for (short a = 0; a < 11; a += 2)
    for (int b = 0; b < 11; b++) {
      arr_2[b] = var_7 + 1 ? 1 : (var_1 ? var_0 : var_5);
      arr_3[b] = arr_4[b] = var_0;
    }
}


Clang version: 11.0.0 (https://github.com/llvm/llvm-project.git
7fc279ca3d414c0997998cb30d1adc2c63c837a5)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200709/90272cf7/attachment.html>


More information about the llvm-bugs mailing list