5 #include "sage3basic.h"
7 #include "functionEvaluationOrderTraversal.h"
25 std::vector<SgVariableDeclaration*> GetTemporariesIntroduced();
30 bool IsNormalized(
SgNode* tree);
36 bool IsNormalizable(
SgNode* tree);
41 std::vector<SgVariableDeclaration*> temporariesIntroduced;
42 std::pair< std::vector<FunctionCallInfo>, std::vector<FunctionCallInfo> > functionCalls;
48 bool FunctionArgumentNeedsNormalization(
SgExpression* argument);
52 bool FunctionArgsNeedNormalization(
SgExprListExp* functionArgs);
56 bool SubtreeNeedsNormalization(
SgNode* top);
66 bool FunctionArgumentCanBeNormalized(
SgExpression* argument);
77 bool AreAllFunctionCallsTrivial(std::vector<FunctionCallInfo> functions);
82 bool AreAllFunctionCallsNormalizable(std::vector<FunctionCallInfo> functions);
This class represents the concept of a C and C++ expression list.
Stores a function call expression, along with associated information about its context.
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes, since similar to statement, expressions have a concrete location within the user's source code.
This class represents the base class for all IR nodes within Sage III.
This class represents the notion of a statement.