LLVM-CBE C Backend conversions


I have a quick question about the LLVM-CBE ( C Backend ). I know it’s been deprecated and removed from the LLVM package for quite some time now but I am hoping that someone on this mailer still knows something about it or can point me to the right place.

I am trying to convert a C++ file/application to IR and back to C ( or C++ if possible ). I am forced to take this approach due to the restrictions placed on me by some 3rd party tools that are also involved. I’ve been playing around with LLVM 3.7 & the CBE because there is some community support for this version and I have successfully managed to convert a C file/program to IR and back again. However the C backend fails to generate proper/compile-able code when trying to convert a C++ file to IR and then back to C; I get a number of undeclared variables at compile time (not link time). Judging by the generated C output and the error produced it ‘looks’ like the CBE is at fault.

So my question is, Can the LLVM-CBE tool support the conversion back to C code when you feed it IR generated from a C++ file/code ? Has anyone had any success with this? What are some of the common problems? Any other advice or guidance on how to achieve this would be greatly appreciated.

Thanks in advance for the help!

Adam Parsons

Cisco Systems, Inc.