Status on llvm-g++ -> llc -> C backend

Does anyone have a patch or fix for the failure:
assertion “Pass::getClassPassInfo() && “Pass class not registered!”” failed: file “/cygdrive/c/llvm/llvm/include/llvm/PassAnalysisSupport.h”, line 76

-Ash

I don't see that failure. We'll need more info to reproduce the issue.

-Chris

Hi Chris,
I am using the latest source from CVS. Try compiling a C++ file using llvm-g++ and then use llc -march=c on the bytecode. I remember another developer (Anton) exerpeinced the same problem. Has this been fixed recently?

Ashwin

Hello, Chris.

You wrote Friday, June 2, 2006, 9:27:25 PM:

I don't see that failure. We'll need more info to reproduce the issue.

I'm also havin this message. Will try to investigate.

Hello, Chris.

You wrote Friday, June 2, 2006, 9:27:25 PM:

I don't see that failure. We'll need more info to reproduce the issue.

Got fixed by adding the folowing line in ther early beginning of
LowerAllocations.cpp file:

static IncludeFile CUFENP((void*)createUnifyFunctionExitNodesPass);

I committed these patches to CVS, please see if it fixes the problems.
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060529/035357.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060529/035356.html

Thanks for tracking this down Anton!

-Chris

Thanks Anton and Chris, it works.
On a side note is there a way to have llc preserve function names upon output to C so that external CPP files that link this file in will be able to find the correct functions. And how about name mangling? I assume this is something not taken care of by llc or at least from llvm-g++ to bytecode.

Ashwin

Thanks Anton and Chris, it works.
On a side note is there a way to have llc preserve function names upon
output to C so that external CPP files that link this file in will be able
to find the correct functions. And how about name mangling? I assume this is
something not taken care of by llc or at least from llvm-g++ to bytecode.

This should be all automatic. You shouldn't have to do anything special for it to work.

-Chris