llir-opt  0.0.1
Low-Level Post-Link Optimiser for OCaml and C
Public Member Functions | List of all members
SpecialisePass::SpecialiseClone Class Referencefinal
Inheritance diagram for SpecialisePass::SpecialiseClone:
Inheritance graph
[legend]
Collaboration diagram for SpecialisePass::SpecialiseClone:
Collaboration graph
[legend]

Public Member Functions

 SpecialiseClone (Func *oldFunc, Func *newFunc, const llvm::DenseMap< unsigned, Parameter > &values, const llvm::DenseMap< unsigned, unsigned > &args)
 Prepare the clone context.
 
 ~SpecialiseClone ()
 Apply fixups.
 
BlockMap (Block *block) override
 Maps a block.
 
Ref< InstMap (Ref< Inst > inst) override
 Maps an instruction.
 
InstClone (ArgInst *i) override
 Clones an argument inst, substituting the actual value.
 
- Public Member Functions inherited from CloneVisitor
virtual ~CloneVisitor ()
 Destroys the visitor.
 
virtual FuncMap (Func *func)
 Maps a block to a new one.
 
virtual ExternMap (Extern *ext)
 Maps a block to a new one.
 
virtual AtomMap (Atom *atom)
 Maps an atom to a new one.
 
virtual ConstantMap (Constant *constant)
 Maps a constant to a new one.
 
virtual GlobalMap (Global *global)
 Maps a global to a potentially new one.
 
virtual ExprMap (Expr *expr)
 Maps an expression to a potentially new one.
 
virtual AnnotSet Annot (const Inst *inst)
 Clones an annotation.
 
virtual Type Map (Type ty, Inst *inst, unsigned idx)
 Maps a type to a new one.
 
virtual InstClone (Inst *inst)
 Clones an instruction.
 
void Fixup ()
 Fixes PHI nodes.
 

Additional Inherited Members

- Protected Member Functions inherited from CloneVisitor
Ref< ValueMap (Ref< Value > value)
 Maps a value to a potentially new one.
 
template<typename It , typename T = typename It::value_type>
std::vector< T > Map (llvm::iterator_range< It > range)
 Map a vector of values.
 
- Protected Attributes inherited from CloneVisitor
llvm::SmallVector< std::pair< PhiInst *, PhiInst * >, 10 > fixups_
 PHI instruction delayed fixups.
 

The documentation for this class was generated from the following file: