Skip to content

doFiniteDifferencingOne

Do finite differencing on one expression within one context. The expression must be defined and valid within the entire body of root. The rewrite rules are used to simplify expressions. When a variable var is updated from old_value to new_value, an expression of the form (var, (old_value, new_value)) is created and rewritten. The rewrite rules may either produce an arbitrary expression (which will be used as‐is) or one of the form (var, (something, value)) (which will be changed to (var = value)).

Synopsis

Declared in <src/midend/programTransformation/finiteDifferencing/finiteDifferencing.h>

void
doFiniteDifferencingOne(
    SgExpression* e,
    SgBasicBlock* root,
    RewriteRule* rules);

Parameters

Name

Description

e

This class represents the notion of an expression. Expressions

root

This class represents the concept of a block (not a basic block from control flow analysis).

rules

Definition of a rewrite rule on a given SgNode. The rule modifies the node and/or its children in‐place, and then returns true for success or false for failure.

Created with MrDocs