<div dir="ltr"><div><div>HI I am try to run my new pass and it is giving the following error message while  running:<br>opt: loop_graph_new.cpp:265: void <anonymous namespace>::LoopGraphAnalysisPass::AddDataEdges(llvm::Loop *, unsigned int): Assertion `loopGraph != graphs.end()' failed.<br>0  opt                        0x000000000193137e llvm::sys::PrintStackTrace(_IO_FILE*) + 46<br>1  opt                        0x000000000193163b<br>2  opt                        0x00000000019318ae<br>3  libpthread.so.0            0x00007fc5c4040340<br>4  libc.so.6                  0x00007fc5c3054cc9 gsignal + 57<br>5  libc.so.6                  0x00007fc5c30580d8 abort + 328<br>6  libc.so.6                  0x00007fc5c304db86<br>7  libc.so.6                  0x00007fc5c304dc32<br>8  loop_graph_analysis_abc.so 0x00007fc5c2e1796f<br>9  loop_graph_analysis_abc.so 0x00007fc5c2e17873<br>10 loop_graph_analysis_abc.so 0x00007fc5c2e177ad<br>11 opt                        0x0000000001898c5b llvm::FPPassManager::runOnFunction(llvm::Function&) + 427<br>12 opt                        0x0000000001898f68 llvm::FPPassManager::runOnModule(llvm::Module&) + 104<br>13 opt                        0x000000000189962a<br>14 opt                        0x000000000189921e llvm::legacy::PassManagerImpl::run(llvm::Module&) + 302<br>15 opt                        0x0000000001899ad1 llvm::legacy::PassManager::run(llvm::Module&) + 33<br>16 opt                        0x0000000000657ca2 main + 6706<br>17 libc.so.6                  0x00007fc5c303fec5 __libc_start_main + 245<br>18 opt                        0x0000000000649219<br>Stack dump:<br>0.    Program arguments: opt -load /home/manideepa/Desktop/research/compiler/llvm-3.4/Debug+Asserts/lib/loop_graph_analysis_abc.so -loop-graph-analysis-abc matrix.bc -o newmat.txt <br>1.    Running pass 'Function Pass Manager' on module 'matrix.bc'.<br>2.    Running pass 'form program graphs and analyze' on function '@main'<br>Aborted (core dumped)<br><br></div>Is this error is due to loopID.<br><br></div><div>The error is in the following AddDataEdges  function which is being called from ProcessLoop() :<br><br>bool ProcessLoop(Loop* L/*, ProfileInfo& PI*/)<br>    {<br>                //ENTRY_POINT("ProcessLoop");<br>        printf("ProcessLoop\n");<br>        for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I)<br>            ProcessLoop(*I/*, PI*/);<br><br>        <br>    map <unsigned int, double>::iterator topLoopIter = topLoops.find(loopID);<br>                    <br>            //introduce data dependence edges into graph<br>            AddDataEdges(L, loopID);<br><br><br><br>void AddDataEdges (Loop* L, unsigned int id)<br>    {<br>                //ENTRY_POINT("AddDataEdges");<br>        printf("AddDataEdges\n");<br>        //get loop graph<br>        map <unsigned int, clust_graph>::iterator loopGraph = graphs.find (id);<br>        assert (loopGraph != graphs.end());<br><br>         //for each node<br>        for (map<Value*, clust_node>::iterator nodeIter = loopGraph->second.begin(); nodeIter != loopGraph->second.end(); nodeIter ++)<br><br></div><div>Please help.<br><br></div><div>Thanks,<br></div><div>Manideepa<br></div><br><div><div><div>  <br clear="all"><div><br>-- <br><div class="gmail_signature"><div dir="ltr"><div>Thanks & Regards,<br>Manideepa Mukherjee<br>Contact No:- +91-7428062726</div></div></div>
</div></div></div></div></div>