<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 - Commits rL314375 caused intermittent build failures for SPEC2006 benchmarks"
   href="https://bugs.llvm.org/show_bug.cgi?id=34832">34832</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Commits rL314375 caused intermittent build failures for SPEC2006 benchmarks
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </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>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>Loop Optimizer
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>lei@ca.ibm.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=19229" name="attach_19229" title="Crash backtrace">attachment 19229</a> <a href="attachment.cgi?id=19229&action=edit" title="Crash backtrace">[details]</a></span>
Crash backtrace

The following spec2006 benchmarks fails to build intermittently:
450.soplex(base; CE), 458.sjeng(base; CE), 447.dealII(base; CE),
453.povray(base; CE)

Intermittent build failure only happens if compiling with the new pass manager. 
This is reproducible on PPC and MacOSX.

To reproduce, run repeat.sh

$ cat a.c
typedef struct node {
  char value;
  int proof;
  int disproof;
  struct node *parent
} node_t;
node_t *a;
proofnumbercheck() {
  node_t *b;
  3;
  while (a->proof && a->disproof)
    ;
  while (b != a)
    b = b->parent;
}

$cat repeat.sh
#! /bin/bash

RUN_NUM=2000
I=0
while [[ $I -lt $RUN_NUM ]]
do
  clang -O3 -fexperimental-new-pass-manager -c a.c > out 2>&1
  grep "Stack dump:" out > /dev/null
  rc=$?
  if [[ $rc == 0 ]]
  then
    echo "Run $I failed!!"
    cat out
    exit 0
  fi
  ((I += 1))
done

echo "All $RUN_NM runs passed!"
exit 1

Output:
------------------------------------------------
a.c:5:22: warning: expected ';' at end of declaration list
  struct node *parent
                     ^
                     ;
a.c:8:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
proofnumbercheck() {
^
a.c:10:3: warning: expression result unused [-Wunused-value]
  3;
  ^
a.c:15:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
0  clang-6.0                0x000000010bebab68
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  clang-6.0                0x000000010bebb226 SignalHandler(int) + 470
2  libsystem_platform.dylib 0x00007fffb70a3b3a _sigtramp + 26
3  libsystem_platform.dylib 0x00007fce80415070 _sigtramp + 3375830352
4  clang-6.0                0x000000010b9cb9f9 llvm::Value::getName() const +
25
5  clang-6.0                0x000000010b4919f5
llvm::InnerAnalysisManagerProxy<llvm::AnalysisManager<llvm::Loop,
llvm::LoopStandardAnalysisResults&>,
llvm::Function>::Result::invalidate(llvm::Function&, llvm::PreservedAnalyses
const&, llvm::AnalysisManager<llvm::Function>::Invalidator&) + 389
6  clang-6.0                0x000000010b9bb80b
llvm::AnalysisManager<llvm::Function>::invalidate(llvm::Function&,
llvm::PreservedAnalyses const&) + 1035
7  clang-6.0                0x000000010b9bb19e
llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>
<span class="quote">>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) + 846</span >
8  clang-6.0                0x000000010c85bdf3
llvm::CGSCCToFunctionPassAdaptor<llvm::PassManager<llvm::Function,
llvm::AnalysisManager<llvm::Function> > >::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 851
9  clang-6.0                0x000000010c85ba42
llvm::detail::PassModel<llvm::LazyCallGraph::SCC,
llvm::CGSCCToFunctionPassAdaptor<llvm::PassManager<llvm::Function,
llvm::AnalysisManager<llvm::Function> > >, 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&) + 18
:
:
------------------------------------------------

Doing a git bisect identified the following commit as the issue.  This is
currently blocking our testing of other implementations. If a quick fix is not
possible please pull out this commit.


e87cf87e451df1e4b22a690a12fc56de7834d25a is the first bad commit
commit e87cf87e451df1e4b22a690a12fc56de7834d25a
Author: Sanjoy Das <<a href="mailto:sanjoy@playingwithpointers.com">sanjoy@playingwithpointers.com</a>>
Date:   Thu Sep 28 02:45:42 2017 +0000

    Use a BumpPtrAllocator for Loop objects

    Summary:
    And now that we no longer have to explicitly free() the Loop instances, we
can
    (with more ease) use the destructor of LoopBase to do what
LoopBase::clear() was
    doing.

    Reviewers: chandlerc

    Subscribers: mehdi_amini, mcrosier, llvm-commits

    Differential Revision: <a href="https://reviews.llvm.org/D38201">https://reviews.llvm.org/D38201</a>

    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@314375">https://llvm.org/svn/llvm-project/llvm/trunk@314375</a>
91177308-0d34-0410-b5e6-96231b3b80d8

:040000 040000 81be8845db6347ef70ba74648575e49a36a4e101
48a946b7b2b840b6aaee4c68ff19eaec8c62ff68 M      include
:040000 040000 35b952670bb8e9d35412ff68b387230caaa2fa2b
757bb6d08738dcbf32fc63c549b57e8793bc04b0 M      lib
:040000 040000 9698ade32e5219741dacb5d824eaecc2f5ed7306
6f8a7f9c679741336fc2912030be4ea173c87952 M      test
:040000 040000 e0e2fce0dbb5dc3eccafac5f749747c1e559edf7
d39a1b6585a6094352008c8ea57a01f6135d200f M      unittests</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>