[LLVMdev] when compiling the IR api codes, "g++ internal error" occurred.

Eli Friedman eli.friedman at gmail.com
Tue May 18 12:03:34 PDT 2010


2010/5/18 홍도선 <dshong at sdgroup.snu.ac.kr>:
> Hello~!
>
>
>
> I'm beginner about LLVM.
>
>
>
> My purpose is inserting a function call to basic block, which is composed of
> IR codes.
>
> For this, I did following works.
>
>
>
> 1) Generate bytecodes from c++ codes
>
> 2) Generate the C++ codes, composed of LLVM APIs.
>
>  $ llc -march=cpp main.bc -o=main_irgen.cpp
>
> 3) Insert function call APIs to the generated C++ codes from step 2)
>
> 4) Compile the functional call inserted codes.
>
>  $ g++ -O2 main_irgen.cpp `llvm-config --cxxflags --ldflags --libs core` -o
> main_irgen.cpp
>
>  -> In this step, an error occurred. The messages are as follows
>
>     g++: Internal error: segmentation fault (program cc1plus)
>
>
>
> When the generated "main_irgen.cpp" file had 3000~4000 code lines, no error
> occurred. But, the file had over 30000 code lines, internal error occurred.

If you need to import a IR file that large, you should use the bitcode
reader instead of compiling it into your program with "llc
-march=cpp".  The relevant call is llvm::ParseBitcodeFile.

-Eli




More information about the llvm-dev mailing list