retdec
|
Idioms produced by libgcc. More...
#include <functional>
#include <llvm/IR/InstIterator.h>
#include <llvm/IR/Instruction.h>
#include <llvm/IR/Instructions.h>
#include "retdec/utils/string.h"
#include "retdec/bin2llvmir/optimizations/idioms_libgcc/idioms_libgcc.h"
#include "retdec/bin2llvmir/utils/llvm.h"
#include "retdec/bin2llvmir/utils/debug.h"
#include "retdec/bin2llvmir/utils/ir_modifier.h"
Classes | |
class | retdec::bin2llvmir::IdiomsLibgccImpl |
Namespaces | |
retdec | |
retdec::bin2llvmir | |
Macros | |
#define | debug_enabled false |
#define | ID_FNC_PAIR(ID, FNC) {ID, [this] (llvm::CallInst* c) { return this->_impl->FNC(c); }} |
Functions | |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getOp0< std::int32_t > (llvm::CallInst *call) |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getOp0< std::int64_t > (llvm::CallInst *call) |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getOp1< std::int32_t > (llvm::CallInst *call) |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getOp1< std::int64_t > (llvm::CallInst *call) |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getRes0< std::int32_t > (llvm::CallInst *call, llvm::Value *res) |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getRes0< std::int64_t > (llvm::CallInst *call, llvm::Value *res) |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getRes1< std::int32_t > (llvm::CallInst *call, llvm::Value *res) |
template<> | |
llvm::Value * | retdec::bin2llvmir::IdiomsLibgccImpl::getRes1< std::int64_t > (llvm::CallInst *call, llvm::Value *res) |
static RegisterPass< IdiomsLibgcc > | retdec::bin2llvmir::X ("retdec-idioms-libgcc", "Libgcc idioms optimization", false, false) |
Idioms produced by libgcc.
#define debug_enabled false |
#define ID_FNC_PAIR | ( | ID, | |
FNC | |||
) | {ID, [this] (llvm::CallInst* c) { return this->_impl->FNC(c); }} |