retdec
Classes | Namespaces | Typedefs
reaching_definitions.h File Reference

Reaching definitions analysis (RDA) builds UD and DU chains. More...

#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <llvm/ADT/SmallPtrSet.h>
#include <llvm/IR/Module.h>
#include "retdec/bin2llvmir/providers/abi/abi.h"
#include "retdec/bin2llvmir/utils/debug.h"

Go to the source code of this file.

Classes

class  retdec::bin2llvmir::Definition
 
class  retdec::bin2llvmir::Use
 
class  retdec::bin2llvmir::BasicBlockEntry
 
class  retdec::bin2llvmir::ReachingDefinitionsAnalysis
 

Namespaces

 retdec
 
 retdec::bin2llvmir
 

Typedefs

using retdec::bin2llvmir::Changed = bool
 
using retdec::bin2llvmir::BBEntrySet = std::unordered_set< BasicBlockEntry * >
 
using retdec::bin2llvmir::DefSet = std::unordered_set< Definition * >
 
using retdec::bin2llvmir::UseSet = std::unordered_set< Use * >
 
using retdec::bin2llvmir::DefVector = std::vector< Definition >
 
using retdec::bin2llvmir::UseVector = std::vector< Use >
 

Detailed Description

Reaching definitions analysis (RDA) builds UD and DU chains.

Right now, this works on an entire module. But we could insert an another layer that represents functions. Then it would be possible to associate BBs with functions that own them and recompute RDA only for the selected function.