<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </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 --- - comp fail when CFL is turned on"
   href="http://llvm.org/bugs/show_bug.cgi?id=20954">20954</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>comp fail when CFL is turned on
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

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

        <tr>
          <th>Hardware</th>
          <td>Macintosh
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </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>LLVM Codegen
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>ghoflehner@apple.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=13045" name="attach_13045" title="llvm ir for CINT2006/462.libquantum, function quantum_unbounded_toffoli(...)">attachment 13045</a> <a href="attachment.cgi?id=13045&action=edit" title="llvm ir for CINT2006/462.libquantum, function quantum_unbounded_toffoli(...)">[details]</a></span>
llvm ir for CINT2006/462.libquantum, function quantum_unbounded_toffoli(...)

Compile the attached test case on trunk 
opt -O3 -use-cfl-aa -use-cfl-aa-in-codegen cfl_bug.ll -S 

The reason is incomplete llvm ir after loop-closed ssa pass. My guess is the
variable argument list exposes a hole in the algorithm.

Backtrace:
UNREACHABLE executed at ./llvm/lib/Analysis/CFLAliasAnalysis.cpp:256!
0  opt                      0x0000000110e728a8 void
std::__1::seed_seq::generate<unsigned int*>(unsigned int*, unsigned int*) +
11672
1  opt                      0x0000000110e72dbb void
std::__1::seed_seq::generate<unsigned int*>(unsigned int*, unsigned int*) +
12971
2  libsystem_platform.dylib 0x00007fff8a4445aa _sigtramp + 26
3  opt                      0x0000000110b29814
std::__1::__tree<std::__1::pair<llvm::Value*, std::__1::pair<llvm::Value*,
llvm::PHINode*> >, std::__1::__map_value_compare<llvm::Value*,
std::__1::pair<llvm::Value*, llvm::PHINode*>, std::__1::less<llvm::Value*>,
true>, std::__1::allocator<std::__1::pair<llvm::Value*,
std::__1::pair<llvm::Value*, llvm::PHINode*> > >
<span class="quote">>::destroy(std::__1::__tree_node<std::__1::pair<llvm::Value*,</span >
std::__1::pair<llvm::Value*, llvm::PHINode*> >, void*>*) + 23332
4  opt                      0x0000000110e72b66 void
std::__1::seed_seq::generate<unsigned int*>(unsigned int*, unsigned int*) +
12374
5  opt                      0x0000000110e5e6aa void*
llvm::object_creator<llvm::StringMap<void*, llvm::MallocAllocator> >() + 3450
6  opt                      0x0000000110b744ec llvm::raw_ostream&
llvm::WriteGraph<llvm::Function const*>(llvm::raw_ostream&, llvm::Function
const* const&, bool, llvm::Twine const&) + 18284
7  opt                      0x0000000110b7439d llvm::raw_ostream&
llvm::WriteGraph<llvm::Function const*>(llvm::raw_ostream&, llvm::Function
const* const&, bool, llvm::Twine const&) + 17949
8  opt                      0x0000000110b71abc llvm::raw_ostream&
llvm::WriteGraph<llvm::Function const*>(llvm::raw_ostream&, llvm::Function
const* const&, bool, llvm::Twine const&) + 7484
9  opt                      0x0000000110b7134a llvm::raw_ostream&
llvm::WriteGraph<llvm::Function const*>(llvm::raw_ostream&, llvm::Function
const* const&, bool, llvm::Twine const&) + 5578
10 opt                      0x0000000110b5718b llvm::Pass*
llvm::callDefaultCtor<llvm::AssumptionTracker>() + 16155
11 opt                      0x0000000110b5599e llvm::Pass*
llvm::callDefaultCtor<llvm::AssumptionTracker>() + 10030
12 opt                      0x0000000110b53c39 llvm::Pass*
llvm::callDefaultCtor<llvm::AssumptionTracker>() + 2505
13 opt                      0x0000000110b4b350 std::__1::__tree<llvm::CallSite,
std::__1::less<llvm::CallSite>, std::__1::allocator<llvm::CallSite>
<span class="quote">>::__insert_unique(llvm::CallSite const&) + 8816</span >
14 opt                      0x0000000110b4ba71 std::__1::__tree<llvm::CallSite,
std::__1::less<llvm::CallSite>, std::__1::allocator<llvm::CallSite>
<span class="quote">>::__insert_unique(llvm::CallSite const&) + 10641</span >
15 opt                      0x0000000110b4bf8e std::__1::__tree<llvm::CallSite,
std::__1::less<llvm::CallSite>, std::__1::allocator<llvm::CallSite>
<span class="quote">>::__insert_unique(llvm::CallSite const&) + 11950</span >
16 opt                      0x0000000110b4c23b std::__1::__tree<llvm::CallSite,
std::__1::less<llvm::CallSite>, std::__1::allocator<llvm::CallSite>
<span class="quote">>::__insert_unique(llvm::CallSite const&) + 12635</span >
17 opt                      0x0000000110b4c634 std::__1::__tree<llvm::CallSite,
std::__1::less<llvm::CallSite>, std::__1::allocator<llvm::CallSite>
<span class="quote">>::__insert_unique(llvm::CallSite const&) + 13652</span >
18 opt                      0x0000000110b4c69b std::__1::__tree<llvm::CallSite,
std::__1::less<llvm::CallSite>, std::__1::allocator<llvm::CallSite>
<span class="quote">>::__insert_unique(llvm::CallSite const&) + 13755</span >
19 opt                      0x0000000110936535 unsigned long
std::__1::__tree<llvm::AssertingVH<llvm::BasicBlock>,
std::__1::less<llvm::AssertingVH<llvm::BasicBlock> >,
std::__1::allocator<llvm::AssertingVH<llvm::BasicBlock> >
<span class="quote">>::__erase_unique<llvm::AssertingVH<llvm::BasicBlock>
>(llvm::AssertingVH<llvm::BasicBlock> const&) + 5253</span >
20 opt                      0x0000000110be1f26 llvm::Pass*
llvm::callDefaultCtor<llvm::LoopInfo>() + 3462
21 opt                      0x0000000110e02ccb void*
llvm::object_creator<llvm::LeakDetectorImpl<void> >() + 25659
22 opt                      0x0000000110b334a7
std::__1::__tree<std::__1::pair<llvm::Function const*, llvm::CallGraphNode*>,
std::__1::__map_value_compare<llvm::Function const*, llvm::CallGraphNode*,
std::__1::less<llvm::Function const*>, true>,
std::__1::allocator<std::__1::pair<llvm::Function const*, llvm::CallGraphNode*>
<span class="quote">> >::destroy(std::__1::__tree_node<std::__1::pair<llvm::Function const*,</span >
llvm::CallGraphNode*>, void*>*) + 4151
23 opt                      0x0000000110e03539 void*
llvm::object_creator<llvm::LeakDetectorImpl<void> >() + 27817
24 opt                      0x0000000110e0394d void*
llvm::object_creator<llvm::LeakDetectorImpl<void> >() + 28861
25 opt                      0x000000010fec5445 void
std::__1::vector<llvm::scc_iterator<llvm::Function*,
llvm::GraphTraits<llvm::Function*> >::StackElement,
std::__1::allocator<llvm::scc_iterator<llvm::Function*,
llvm::GraphTraits<llvm::Function*> >::StackElement>
<span class="quote">>::__push_back_slow_path<llvm::scc_iterator<llvm::Function*,</span >
llvm::GraphTraits<llvm::Function*>
<span class="quote">>::StackElement>(llvm::scc_iterator<llvm::Function*,</span >
llvm::GraphTraits<llvm::Function*> >::StackElement&&) + 7077
26 libdyld.dylib            0x00007fff8a73f5fd start + 1</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>