ROSE 0.11.145.147
|
Operator-specific simplification methods.
Definition at line 883 of file SymbolicExpression.h.
#include <Rose/BinaryAnalysis/SymbolicExpression.h>
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. | |
|
inlinevirtual |
Definition at line 885 of file SymbolicExpression.h.
|
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.
|
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.