[LLVMdev] Assertion failed !!

Manideepa Mukherjee manideepa.mukherjee at gmail.com
Wed Jul 1 21:49:51 PDT 2015


HI I am try to run my new pass and it is giving the following error message
while  running:
opt: loop_graph_new.cpp:265: void <anonymous
namespace>::LoopGraphAnalysisPass::AddDataEdges(llvm::Loop *, unsigned
int): Assertion `loopGraph != graphs.end()' failed.
0  opt                        0x000000000193137e
llvm::sys::PrintStackTrace(_IO_FILE*) + 46
1  opt                        0x000000000193163b
2  opt                        0x00000000019318ae
3  libpthread.so.0            0x00007fc5c4040340
4  libc.so.6                  0x00007fc5c3054cc9 gsignal + 57
5  libc.so.6                  0x00007fc5c30580d8 abort + 328
6  libc.so.6                  0x00007fc5c304db86
7  libc.so.6                  0x00007fc5c304dc32
8  loop_graph_analysis_abc.so 0x00007fc5c2e1796f
9  loop_graph_analysis_abc.so 0x00007fc5c2e17873
10 loop_graph_analysis_abc.so 0x00007fc5c2e177ad
11 opt                        0x0000000001898c5b
llvm::FPPassManager::runOnFunction(llvm::Function&) + 427
12 opt                        0x0000000001898f68
llvm::FPPassManager::runOnModule(llvm::Module&) + 104
13 opt                        0x000000000189962a
14 opt                        0x000000000189921e
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 302
15 opt                        0x0000000001899ad1
llvm::legacy::PassManager::run(llvm::Module&) + 33
16 opt                        0x0000000000657ca2 main + 6706
17 libc.so.6                  0x00007fc5c303fec5 __libc_start_main + 245
18 opt                        0x0000000000649219
Stack dump:
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
1.    Running pass 'Function Pass Manager' on module 'matrix.bc'.
2.    Running pass 'form program graphs and analyze' on function '@main'
Aborted (core dumped)

Is this error is due to loopID.

The error is in the following AddDataEdges  function which is being called
from ProcessLoop() :

bool ProcessLoop(Loop* L/*, ProfileInfo& PI*/)
    {
                //ENTRY_POINT("ProcessLoop");
        printf("ProcessLoop\n");
        for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I)
            ProcessLoop(*I/*, PI*/);


    map <unsigned int, double>::iterator topLoopIter =
topLoops.find(loopID);

            //introduce data dependence edges into graph
            AddDataEdges(L, loopID);



void AddDataEdges (Loop* L, unsigned int id)
    {
                //ENTRY_POINT("AddDataEdges");
        printf("AddDataEdges\n");
        //get loop graph
        map <unsigned int, clust_graph>::iterator loopGraph = graphs.find
(id);
        assert (loopGraph != graphs.end());

         //for each node
        for (map<Value*, clust_node>::iterator nodeIter =
loopGraph->second.begin(); nodeIter != loopGraph->second.end(); nodeIter ++)

Please help.

Thanks,
Manideepa



-- 
Thanks & Regards,
Manideepa Mukherjee
Contact No:- +91-7428062726
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150702/d5875229/attachment.html>


More information about the llvm-dev mailing list