ROSE 0.11.145.147
Public Member Functions | List of all members
Rose::BinaryAnalysis::SymbolicExpression::Simplifier Class Reference

Description

Operator-specific simplification methods.

Definition at line 883 of file SymbolicExpression.h.

#include <Rose/BinaryAnalysis/SymbolicExpression.h>

Inheritance diagram for Rose::BinaryAnalysis::SymbolicExpression::Simplifier:
Inheritance graph
[legend]

Public Member Functions

virtual Ptr fold (Nodes::const_iterator, Nodes::const_iterator) const
 Constant folding.
 
virtual Ptr rewrite (Interior *, const SmtSolverPtr &) const
 Rewrite the entire expression to something simpler.
 

Constructor & Destructor Documentation

◆ ~Simplifier()

virtual Rose::BinaryAnalysis::SymbolicExpression::Simplifier::~Simplifier ( )
inlinevirtual

Definition at line 885 of file SymbolicExpression.h.

Member Function Documentation

◆ fold()

virtual Ptr Rose::BinaryAnalysis::SymbolicExpression::Simplifier::fold ( Nodes::const_iterator  ,
Nodes::const_iterator   
) const
inlinevirtual

Constant folding.

The range begin (inclusive) to end (exclusive) must contain at least two nodes and all of the nodes must be leaf nodes with known values. This method returns a new folded node if folding is possible, or the null pointer if folding is not possible.

Reimplemented in Rose::BinaryAnalysis::SymbolicExpression::AddSimplifier, Rose::BinaryAnalysis::SymbolicExpression::AndSimplifier, Rose::BinaryAnalysis::SymbolicExpression::OrSimplifier, Rose::BinaryAnalysis::SymbolicExpression::XorSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SmulSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UmulSimplifier, and Rose::BinaryAnalysis::SymbolicExpression::ConcatSimplifier.

Definition at line 890 of file SymbolicExpression.h.

◆ rewrite()

virtual Ptr Rose::BinaryAnalysis::SymbolicExpression::Simplifier::rewrite ( Interior ,
const SmtSolverPtr  
) const
inlinevirtual

Rewrite the entire expression to something simpler.

Returns the new node if the node can be simplified, otherwise returns null.

Reimplemented in Rose::BinaryAnalysis::SymbolicExpression::AddSimplifier, Rose::BinaryAnalysis::SymbolicExpression::AndSimplifier, Rose::BinaryAnalysis::SymbolicExpression::ConvertSimplifier, Rose::BinaryAnalysis::SymbolicExpression::OrSimplifier, Rose::BinaryAnalysis::SymbolicExpression::XorSimplifier, Rose::BinaryAnalysis::SymbolicExpression::ConcatSimplifier, Rose::BinaryAnalysis::SymbolicExpression::ExtractSimplifier, Rose::BinaryAnalysis::SymbolicExpression::AsrSimplifier, Rose::BinaryAnalysis::SymbolicExpression::InvertSimplifier, Rose::BinaryAnalysis::SymbolicExpression::NegateSimplifier, Rose::BinaryAnalysis::SymbolicExpression::IteSimplifier, Rose::BinaryAnalysis::SymbolicExpression::NoopSimplifier, Rose::BinaryAnalysis::SymbolicExpression::ReinterpretSimplifier, Rose::BinaryAnalysis::SymbolicExpression::RolSimplifier, Rose::BinaryAnalysis::SymbolicExpression::RorSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UextendSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SextendSimplifier, Rose::BinaryAnalysis::SymbolicExpression::EqSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SgeSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SgtSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SleSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SltSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UgeSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UgtSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UleSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UltSimplifier, Rose::BinaryAnalysis::SymbolicExpression::ZeropSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SdivSimplifier, Rose::BinaryAnalysis::SymbolicExpression::SmodSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UdivSimplifier, Rose::BinaryAnalysis::SymbolicExpression::UmodSimplifier, Rose::BinaryAnalysis::SymbolicExpression::ShlSimplifier, Rose::BinaryAnalysis::SymbolicExpression::ShrSimplifier, Rose::BinaryAnalysis::SymbolicExpression::LssbSimplifier, Rose::BinaryAnalysis::SymbolicExpression::MssbSimplifier, and Rose::BinaryAnalysis::SymbolicExpression::SetSimplifier.

Definition at line 896 of file SymbolicExpression.h.


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