20 INSIDE_FOR_INIT, INSIDE_FOR_TEST, INSIDE_FOR_INCREMENT, INSIDE_WHILE_CONDITION,
21 INSIDE_DO_WHILE_CONDITION, IN_SAFE_PLACE, INSIDE_CONDITIONAL_EXP_TRUE_ARM, INSIDE_CONDITIONAL_EXP_FALSE_ARM, INSIDE_SHORT_CIRCUIT_EXP_RHS
67 static std::pair< std::vector<FunctionCallInfo>, std::vector<FunctionCallInfo> >
GetFunctionCalls(
SgNode* root);
85 std::vector<FunctionCallInfo> normalizableFunctionCalls;
87 std::vector<FunctionCallInfo> nonNormalizableFunctionCalls;
Stores a function call expression, along with associated information about its context.
Attribute Evaluator for inherited and synthesized attributes.
FunctionCallInheritedAttribute evaluateInheritedAttribute(SgNode *astNode, FunctionCallInheritedAttribute parentAttribute)
Visits AST nodes in pre-order.
static std::pair< std::vector< FunctionCallInfo >, std::vector< FunctionCallInfo > > GetFunctionCalls(SgNode *root)
Traverses the subtree of the given AST node and finds all function calls in function-evaluation order...
This class represents the concept of a C++ function call (which is an expression).
SgFunctionCallExp * functionCall
The function call expression.
FunctionCallInheritedAttribute()
Default constructor.
InsertionMode
How a statement should be inserted.
@ APPEND_SCOPE
Insert at the bottom of the scope defined by the given statement.
This class represents the base class for all IR nodes within Sage III.
Traverses a given AST and finds all function calls in the order in which they're evaluated Also,...
SgStatement * lastStatement
The last statement encountered before the current node in the AST.
virtual bool IsFunctionCallSideEffectFree(SgFunctionCallExp *functionCall)
Returns true if the function call has no side effects.
bool evaluateSynthesizedAttribute(SgNode *astNode, FunctionCallInheritedAttribute parentAttribute, SynthesizedAttributesList)
Visits AST nodes in post-order.
InsertionMode tempVarDeclarationInsertionMode
How to insert the temporary variable declaration.
SgNode * currentScope
The innermost scope inside of which this AST node resides.
This class represents the notion of a statement.
@ INSERT_BEFORE
Insert right before the given statement.
SgStatement * tempVarDeclarationLocation
When a variable is created to replace one of the arguments of this function, where should it be inser...
enum FunctionCallInheritedAttribute::@681 scopeStatus
Is the current node inside a for loop or conditional expresion structure (not the body).