ROSE
0.11.98.0
|
Operator-specific simplification methods.
Definition at line 881 of file SymbolicExpr.h.
#include <Rose/BinaryAnalysis/SymbolicExpr.h>
Public Member Functions | |
virtual Ptr | fold (Nodes::const_iterator, Nodes::const_iterator) const |
Constant folding. More... | |
virtual Ptr | rewrite (Interior *, const SmtSolverPtr &) const |
Rewrite the entire expression to something simpler. More... | |
|
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::SymbolicExpr::ConcatSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UmulSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SmulSimplifier, Rose::BinaryAnalysis::SymbolicExpr::XorSimplifier, Rose::BinaryAnalysis::SymbolicExpr::OrSimplifier, Rose::BinaryAnalysis::SymbolicExpr::AndSimplifier, and Rose::BinaryAnalysis::SymbolicExpr::AddSimplifier.
Definition at line 888 of file SymbolicExpr.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::SymbolicExpr::SetSimplifier, Rose::BinaryAnalysis::SymbolicExpr::MssbSimplifier, Rose::BinaryAnalysis::SymbolicExpr::LssbSimplifier, Rose::BinaryAnalysis::SymbolicExpr::ShrSimplifier, Rose::BinaryAnalysis::SymbolicExpr::ShlSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UmodSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UdivSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SmodSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SdivSimplifier, Rose::BinaryAnalysis::SymbolicExpr::ZeropSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UltSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UleSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UgtSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UgeSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SltSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SleSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SgtSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SgeSimplifier, Rose::BinaryAnalysis::SymbolicExpr::EqSimplifier, Rose::BinaryAnalysis::SymbolicExpr::SextendSimplifier, Rose::BinaryAnalysis::SymbolicExpr::UextendSimplifier, Rose::BinaryAnalysis::SymbolicExpr::RorSimplifier, Rose::BinaryAnalysis::SymbolicExpr::RolSimplifier, Rose::BinaryAnalysis::SymbolicExpr::ReinterpretSimplifier, Rose::BinaryAnalysis::SymbolicExpr::NoopSimplifier, Rose::BinaryAnalysis::SymbolicExpr::IteSimplifier, Rose::BinaryAnalysis::SymbolicExpr::NegateSimplifier, Rose::BinaryAnalysis::SymbolicExpr::InvertSimplifier, Rose::BinaryAnalysis::SymbolicExpr::AsrSimplifier, Rose::BinaryAnalysis::SymbolicExpr::ExtractSimplifier, Rose::BinaryAnalysis::SymbolicExpr::ConcatSimplifier, Rose::BinaryAnalysis::SymbolicExpr::XorSimplifier, Rose::BinaryAnalysis::SymbolicExpr::OrSimplifier, Rose::BinaryAnalysis::SymbolicExpr::ConvertSimplifier, Rose::BinaryAnalysis::SymbolicExpr::AndSimplifier, and Rose::BinaryAnalysis::SymbolicExpr::AddSimplifier.
Definition at line 894 of file SymbolicExpr.h.