[llvm-dev] LLVM IR to C++

Erdem Derebaşoğlu via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 15 19:08:07 PST 2016


First, I got this:
oh2.cpp:5:36: fatal error: llvm/Analysis/Verifier.h: No such file or directory
I know Verifier.h is in llvm/IR so I changed oh2.cpp accordingly. oh2.cpp was created by llc so I don't understand why the path was wrong. Now I get these errors:

oh2.cpp: In function ‘int main(int, char**)’:oh2.cpp:27:22: error: ‘PrintMessageAction’ was not declared in this scope   verifyModule(*Mod, PrintMessageAction);                      ^oh2.cpp:28:3: error: ‘PassManager’ was not declared in this scope   PassManager PM;   ^oh2.cpp:28:3: note: suggested alternative:In file included from oh2.cpp:16:0:/home/erdem/llvm/include/llvm/IR/LegacyPassManager.h:49:7: note:   ‘llvm::legacy::PassManager’ class PassManager : public PassManagerBase {       ^oh2.cpp:28:15: error: expected ‘;’ before ‘PM’   PassManager PM;               ^oh2.cpp:29:3: error: ‘PM’ was not declared in this scope   PM.add(createPrintModulePass(&outs()));   ^oh2.cpp:29:39: error: invalid initialization of non-const reference of type ‘llvm::raw_ostream&’ from an rvalue of type ‘llvm::raw_ostream*’   PM.add(createPrintModulePass(&outs()));                                       ^In file included from oh2.cpp:12:0:/home/erdem/llvm/include/llvm/IR/IRPrintingPasses.h:36:13: error: in passing argument 1 of ‘llvm::ModulePass* llvm::createPrintModulePass(llvm::raw_ostream&, const string&, bool)’ ModulePass *createPrintModulePass(raw_ostream &OS,             ^oh2.cpp: In function ‘llvm::Module* makeLLVMModule()’:oh2.cpp:372:94: error: no matching function for call to ‘llvm::ConstantExpr::getGetElementPtr(llvm::GlobalVariable*&, std::vector<llvm::Constant*, std::allocator<llvm::Constant*> >&)’ Constant* const_ptr_30 = ConstantExpr::getGetElementPtr(gvar_array__str, const_ptr_30_indices);                                                                                              ^oh2.cpp:372:94: note: candidates are:In file included from oh2.cpp:8:0:/home/erdem/llvm/include/llvm/IR/Constants.h:1092:20: note: static llvm::Constant* llvm::ConstantExpr::getGetElementPtr(llvm::Type*, llvm::Constant*, llvm::ArrayRef<llvm::Constant*>, bool, llvm::Type*)   static Constant *getGetElementPtr(Type *Ty, Constant *C,                    ^/home/erdem/llvm/include/llvm/IR/Constants.h:1092:20: note:   candidate expects 5 arguments, 2 provided/home/erdem/llvm/include/llvm/IR/Constants.h:1100:20: note: static llvm::Constant* llvm::ConstantExpr::getGetElementPtr(llvm::Type*, llvm::Constant*, llvm::Constant*, bool, llvm::Type*)   static Constant *getGetElementPtr(Type *Ty, Constant *C, Constant *Idx,                    ^/home/erdem/llvm/include/llvm/IR/Constants.h:1100:20: note:   candidate expects 5 arguments, 2 provided/home/erdem/llvm/include/llvm/IR/Constants.h:1108:20: note: static llvm::Constant* llvm::ConstantExpr::getGetElementPtr(llvm::Type*, llvm::Constant*, llvm::ArrayRef<llvm::Value*>, bool, llvm::Type*)   static Constant *getGetElementPtr(Type *Ty, Constant *C,                    ^/home/erdem/llvm/include/llvm/IR/Constants.h:1108:20: note:   candidate expects 5 arguments, 2 provided
... and some unused variable warnings. Is there another way to compile the cpp file generated by -march=cpp?
Erdem
> Subject: Re: [llvm-dev] LLVM IR to C++
> To: erdemderebasoglu at hotmail.com; llvm-dev at lists.llvm.org
> From: jonathan at codesourcery.com
> Date: Mon, 15 Feb 2016 18:33:50 -0700
> 
> 
> 
> On 2/15/16 6:16 PM, Erdem Derebaşoğlu via llvm-dev wrote:
> > Hi,
> >
> > I want to convert LLVM bitcode files to cpp. I use these commands:
> >
> > 1. clang -c -emit-llvm -fopenmp=libiomp5 oh2.c -o oh2.bc
> > 2. llc -march=cpp oh2.bc -o oh2.cpp
> > 3. g++ -fno-rtti -O0 -g `$HOME/llvmbuild/bin/llvm-config --cxxflags`
> > oh2.cpp `$HOME/llvmbuild/bin/llvm-config --ldflags --libs --system-libs`
> > -o oh2c
> >
> > After the 3rd command, I get a lot of compilation errors. Is it possible
> > that llc -march=cpp generates incorrect code?
> 
> What kinds of compilation errors are you seeing?
> 
> 
> Jon
> 
> >
> > Thanks,
> >
> > Erdem Derebasoglu
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> 
> -- 
> Jon Roelofs
> jonathan at codesourcery.com
> CodeSourcery / Mentor Embedded
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160216/e9d87a49/attachment.html>


More information about the llvm-dev mailing list