<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - ICE in backend: Instruction Combining seems stuck in an infinite loop after 100 iterations."
   href="https://bugs.llvm.org/show_bug.cgi?id=46661">46661</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>ICE in backend: Instruction Combining seems stuck in an infinite loop after 100 iterations.
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>Vsevolod.Livinskij@frtk.ru
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre><span class="quote">>$ clang++ -c -O3 func.cpp</span >
fatal error: error in backend: Instruction Combining seems stuck in an infinite
loop after 100 iterations.
PLEASE submit a bug report to <a href="https://bugs.llvm.org/">https://bugs.llvm.org/</a> 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>
<span class="quote">>, std::__cxx11::basic_string<char, std::char_traits<char>,</span >
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>
<span class="quote">>, std::__cxx11::basic_string<char, std::char_traits<char>,</span >
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 (<a href="https://github.com/llvm/llvm-project.git">https://github.com/llvm/llvm-project.git</a>
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 (<a href="https://github.com/llvm/llvm-project.git">https://github.com/llvm/llvm-project.git</a>
7fc279ca3d414c0997998cb30d1adc2c63c837a5)</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>