Convert .ll file to .c file

Hi,

I wanted to convert .ll file to .c file (for the sake of debugging the c file). I used the command “llc” with “-march=c” option. But i’m getting the below error.

llc: error: invalid target ‘c’

My script file code for converting it is:

llvm-as -f module.ll
opt -o=module.bc module.bc
llvm-dis module.bc
llc -f -march=c module.bc
#gcc module.cbe.c -lstdc++

What i need to do to get the ‘c’ file generated. I build LLVM using ‘enable-targets = x86’ . Can i use ‘enable-targets = x86,c’ to clear the error?

Thanks in advance…

Sarath Chandra wrote:

Hi,

     I wanted to convert .ll file to .c file (for the sake of debugging
the c file). I used the command "llc" with "-march=c" option. But i'm
getting the below error.

* llc: error: invalid target 'c' *
*
My script file code for converting it is:

llvm-as -f module.ll
opt -o=module.bc module.bc
llvm-dis module.bc

You don't need the llvm-dis step (unless you want the module.ll file for some other reason).

llc -f -march=c module.bc
#gcc module.cbe.c -lstdc++

What i need to do to get the 'c' file generated. I build LLVM using
'*enable-targets = x86*' . Can i use '*enable-targets = x86,c*' to clear
the error?

I think you're looking for configure --enable-targets=x86,cbe .

Nick

Hi Nick,

I need the module.ll file. Now how can i configure LLVM to enable “c” target? Is it that i need to build from the scratch? Is there any way to enable ‘c’ target also?

Sarath Chandra wrote:

Hi Nick,

      I need the module.ll file. Now how can i configure LLVM to enable
"c" target? Is it that i need to build from the scratch? Is there any
way to enable 'c' target also?

Yes. To quote myself:
> I think you're looking for configure --enable-targets=x86,cbe .

:slight_smile:

Nick