retdec
|
clang/LLVM instruction idioms More...
#include <idioms_llvm.h>
Protected Member Functions | |
llvm::Instruction * | exchangeIsGreaterThanMinusOne (llvm::BasicBlock::iterator iter) const |
llvm::Instruction * | exchangeCompareEq (llvm::BasicBlock::iterator iter) const |
llvm::Instruction * | exchangeCompareNeq (llvm::BasicBlock::iterator iter) const |
llvm::Instruction * | exchangeCompareSlt (llvm::BasicBlock::iterator iter) const |
llvm::Instruction * | exchangeCompareSle (llvm::BasicBlock::iterator iter) const |
![]() | |
IdiomsAbstract () | |
void | init (llvm::Module *M, CC_compiler cc, CC_arch arch) |
CC_compiler | getCompiler () const |
CC_arch | getArch () const |
llvm::Module * | getModule () const |
virtual bool | doAnalysis (llvm::Function &, llvm::Pass *)=0 |
virtual | ~IdiomsAbstract ()=default |
bool | findBranchDependingOn (llvm::BranchInst **br, llvm::BasicBlock &bb, const llvm::Value *val) const |
Friends | |
class | IdiomsAnalysis |
Additional Inherited Members | |
![]() | |
static void | eraseInstFromBasicBlock (llvm::Value *val, llvm::BasicBlock *bb) |
static bool | isPowerOfTwo (unsigned x) |
static bool | isPowerOfTwoRepresentable (const llvm::ConstantInt *cnst) |
clang/LLVM instruction idioms
|
protected |
Exchange ~(A^B) with icmp eq i1 A, B
iter | value to visit |
|
protected |
Exchange A^B with icmp eq i1 A, B
iter | value to visit |
|
protected |
Exchange ~A | B with icmp sle i1 A, B
iter | value to visit |
|
protected |
Exchange ~A & B with icmp slt i1 A, B
iter | value to visit |
|
protected |
Exchange (X & SignBit) == 0 with X > -1
iter | value to visit |
|
friend |