Program Listing for File inlinerSupport.h

Program Listing for File inlinerSupport.h#

Return to documentation for file (src/midend/programTransformation/astInlining/inlinerSupport.h)

#ifndef INLINERSUPPORT_H
#define INLINERSUPPORT_H

// DQ (3/12/2006): This is now not required, the file name is
// changed to rose_config.h and is included directly by rose.h.
// #include "config.h"



// DQ (3/12/2006): This is included within rose.h
// #include <map>

// From isPotentiallyModified.C:

ROSE_DLL_API bool isPotentiallyModified(SgExpression* expr, SgNode* root);

ROSE_DLL_API bool hasAddressTaken(SgExpression* expr, SgNode* root);

// From inlinerSupport.C:

ROSE_DLL_API void flattenBlocks(SgNode* n);

ROSE_DLL_API bool isMemberVariable(const SgNode& in);

ROSE_DLL_API void renameVariables(SgNode* n);

ROSE_DLL_API void renameLabels(SgNode* n, SgFunctionDefinition* enclosingFunctionDefinition);

ROSE_DLL_API void rebindVariableAndLabelReferences(SgNode* top);

ROSE_DLL_API void fixReturnStatements(SgNode* n);

ROSE_DLL_API void removeUnusedVariables(SgNode* top, const std::set<SgFunctionDeclaration*>& safeFunctions = std::set<SgFunctionDeclaration*>());

ROSE_DLL_API std::set<SgInitializedName*> findVariablesUsedInRegion(SgNode* e);

ROSE_DLL_API void simpleCopyAndConstantPropagation(SgNode* top);

ROSE_DLL_API void removeNullStatements(SgNode* n);

ROSE_DLL_API void cleanupInlinedCode(SgNode* n);

ROSE_DLL_API void changeAllMembersToPublic(SgNode* n);

ROSE_DLL_API SgInitializedNamePtrList findInitializedNamesInScope(SgScopeStatement* scope);

ROSE_DLL_API void removeVariableDeclaration(SgInitializedName* initname);

ROSE_DLL_API void checkTransformedFlagsVisitor(SgNode* n);

#endif // INLINERSUPPORT_H