retdec
llvmir_utils.h
Go to the documentation of this file.
1 
11 #ifndef CAPSTONE2LLVMIR_LLVMIR_UTILS_H
12 #define CAPSTONE2LLVMIR_LLVMIR_UTILS_H
13 
14 #include <llvm/IR/IRBuilder.h>
15 #include <llvm/IR/Instruction.h>
16 #include <llvm/IR/Instructions.h>
17 #include <llvm/IR/Module.h>
18 
19 namespace retdec {
20 namespace capstone2llvmir {
21 
25 llvm::Value* generateValueNegate(llvm::IRBuilder<>& irb, llvm::Value* val);
26 
27 llvm::IntegerType* getIntegerTypeFromByteSize(llvm::Module* module, unsigned sz);
28 
29 llvm::Type* getFloatTypeFromByteSize(llvm::Module* module, unsigned sz);
30 
46 llvm::IRBuilder<> generateIfThen(
47  llvm::Value* cond,
48  llvm::IRBuilder<>& irb);
49 
59 llvm::IRBuilder<> generateIfNotThen(
60  llvm::Value* cond,
61  llvm::IRBuilder<>& irb);
62 
81 std::pair<llvm::IRBuilder<>, llvm::IRBuilder<>> generateIfThenElse(
82  llvm::Value* cond,
83  llvm::IRBuilder<>& irb);
84 
105 std::pair<llvm::IRBuilder<>, llvm::IRBuilder<>> generateWhile(
106  llvm::BranchInst*& branch,
107  llvm::IRBuilder<>& irb);
108 
109 } // namespace capstone2llvmir
110 } // namespace retdec
111 
112 #endif
ShPtr< Module > module
The current module.
Definition: hll_writer.cpp:100
std::pair< llvm::IRBuilder<>, llvm::IRBuilder<> > generateIfThenElse(llvm::Value *cond, llvm::IRBuilder<> &irb)
Definition: llvmir_utils.cpp:116
llvm::IntegerType * getIntegerTypeFromByteSize(llvm::Module *module, unsigned sz)
Definition: llvmir_utils.cpp:18
llvm::IRBuilder generateIfNotThen(llvm::Value *cond, llvm::IRBuilder<> &irb)
Definition: llvmir_utils.cpp:109
std::pair< llvm::IRBuilder<>, llvm::IRBuilder<> > generateWhile(llvm::BranchInst *&branch, llvm::IRBuilder<> &irb)
Definition: llvmir_utils.cpp:145
llvm::Type * getFloatTypeFromByteSize(llvm::Module *module, unsigned sz)
Definition: llvmir_utils.cpp:24
llvm::Value * generateValueNegate(llvm::IRBuilder<> &irb, llvm::Value *val)
Definition: llvmir_utils.cpp:13
llvm::IRBuilder generateIfThen(llvm::Value *cond, llvm::IRBuilder<> &irb)
Definition: llvmir_utils.cpp:102
Definition: archive_wrapper.h:19