Functions

Name

Description

AddConst

AnalyzeEquation

AnalyzeStmtRefs

ApplyBinOP

ApplyLoopSplitting

ApplyUnaryOP

ArrayReferences

AstPostProcessing

Clone

Closure

CompareVal

ComputeLoopDep

CopyArrayOpt2String

CopyNodeEdge

CopySplitNodeEdge

CountEnclosedStmts

CountIteratorSize

DebugAnnot

DecomposeAffineExpression

DepGraphInsertLoop

DepGraphNodeAlignLoop

DepGraphNodeInsertLoop

DepGraphNodeMergeLoop

DepGraphNodeRemoveLoop

DepGraphNodeRestrictDomain

DepGraphNodeSwapLoop

DepType2String

DoubleToString

EdgeDir2DepDir

Equal

FindFirst

FindVal

FuseDepGraphNode

FuseSliceNests

GenerateDotGraph

Generate a dot graph named 'fileName' from a call graph

GetCommonLoop

GetEnclosingLoop

GetExprVal

GetFirstOperand

GetFusionInfo

GetImplicitConversionObject

GetLoopLevel

GetOperatorVariant

GetValBound

GetValLB

GetValUB

GraphNodeToString

GraphToString

HasFraction

IncreaseAlign

IsImportantForSliceSgFilter

IsNIL

IsOne

IsSCGenerated

IsValidDep

IsZero

IteratorToString1

IteratorToString2

LessThan

Max

Min

MoveNodeEdge

NormalizeForLoop

NormalizeMatrix

OptimizeLoopTree

PrintResults

PropagateDefUseChainUpdate

ReadAstTraverse

Traverse an entire AST, where op is invoked on each AST node to gather information.

ReferenceDimension

ReferenceStride

RelToString

ReplaceVal

RestrictDepDomain

Reverse

SelectDepLevel

SelectDepType

SelfSpatialReuse

SetDepDirection

SgExpr2Var

SgTreeTraversal_inFileToTraverse

SliceLoopIvar

SliceLoopRange

SliceLoopStep

SliceNestReverseTypedFusion

SliceNestTypedFusion

SplitEquation

TemporaryReuseRefs

ToString

TransformAstTraverse

Traverse and transform an entire AST, where op is invoked to transform each sub‐Tree.

UnwrapVarCond

UpdateEach

UpdateEachNodeEdge

UpdateMatrix

UpdateNodeEdge

UpdateSplitNodeEdge

XOR

addPredefinedVars

annotateNumCallers

attachPreprocessingInfo

backend

backendCompilesUsingOriginalInputFile

backendGeneratesSourceCodeButCompilesUsingOriginalInputFile

beginClangFrontendValgrindPublicationSession

buildArtificialFrontier

buildClangCurrentInstantiationNameForFrontend

buildClangTemplateInstantiationNameForFrontend

buildSourceFileForHeaderFile

buildTokenStreamMapping

buildTokenStreamMappingForRoot

buildTokenStreamMappingForSourceFile

buildVariableList

callGraphDeclHasIndependentCallableIdentity

call_graph_traversal_includes_function_decl

canonicalClassTypeForFirstSeenTracking

canonicalEnumTypeForFirstSeenTracking

checkIsModifiedFlag

checkOpenMPIR

checkPhysicalSourcePosition

Checks whether the physical source position information is consistant in the Sg_File_Info object

checkTransformedFlagsVisitor

Check for consistancy of isTransformation flags for nodes marked as a transformation.

clangDeclHasBuiltinAttrDefinedForFrontend

clangFrontendDeclarationHasExactCompletedSourceSurfaceOwnership

clangFrontendImportedNamespaceModule

clangFunctionDeclIsBuiltinSupportForFrontend

clangQualTypeAsStringDefinedForFrontend

clang_main

clang_to_dot_main

cleanupInlinedCode

Combined procedure for cleaning up code after inlining. Does not do variable renaming or block flattening, however.

concreteClangConversionTypeName

constructorInitializerAssociatedClassUnknown

convertAdjustArgsClause

convertAffinityClause

convertAllocatorClause

convertAppendArgsClause

convertAtomicDefaultMemOrderClause

convertBindClause

convertBodyDirective

convertClause

convertCombinedBodyDirective

convertDefaultClause

convertDefaultmapClause

convertDependClause

convertDepobjUpdateClause

convertDirective

convertDistScheduleClause

convertExpressionClause

convertExtImplementationDefinedRequirementClause

convertFromClause

convertInitializerIntoAssignment

Convert something like "int a = foo();" into "int a; a = foo();"

convertMapClause

convertMatchClause

convertNonBodyDirective

convertOmpAllocateDirective

convertOmpBeginDeclareVariantDirective

convertOmpDeclareSimdDirective

convertOmpDeclareTargetDirective

convertOmpDeclareVariantDirective

convertOmpEndDeclareTargetDirective

convertOmpEndDeclareVariantDirective

convertOmpFlushDirective

convertOmpParallelStatementFromCombinedDirectives

convertOmpRequiresDirective

convertOmpTaskwaitDirective

convertOmpThreadprivateStatement

convertOpenACCDirective

convertOrderClause

convertProcBindClause

convertScheduleClause

convertSizesClause

convertToClause

convertUsesAllocatorsClause

convertVariantBodyDirective

convertVariantDirective

convertWhenClause

debug_cfg

defaultFunctionGenerator

dependenceDiagnosticNodeText

destructorCallAnnotator

detachTokenMappingForRemovedNode

detectMacroExpansionsToBeUnparsedAsAstTransformations

detectMacroOrIncludeFileExpansions

detectTransformations

Detect nodes marked as transformations (should not be present coming out of the frontend translation).

detectTransformations_local

determineFileType

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)).

doInline

Main inliner code. Accepts a function call as a parameter, and inlines only that single function call. Returns true if it succeeded, and false otherwise. The function call must be to a named function, static member function, or non‐virtual non‐static member function, and the function must be known (not through a function pointer or member function pointer). Also, the body of the function must already be visible. Recursive procedures are handled properly (when allowRecursion is set), by inlining one copy of the procedure into itself. Any other restrictions on what can be inlined are bugs in the inliner code.

doRTI

dominates

edgePointerReplacement

endClangFrontendValgrindPublicationSession

enforceTokenUnparseContract

escapeString

escape_double_quotes

exactQualificationUseSiteForEmission

existsVariable

expressionTreeEqual

Are two expressions equal (using a deep comparison)?

expressionTreeEqualStar

Are corresponding expressions in two lists equal (using a deep comparison)?

failSourceQualification

filterGraph

* The function void filterGraph(_GraphStructure& graph, _NodePredicate _nodePred) will filter out all nodes which satisfy the criteria which makes_NodePredicate return 'true'. NodePredicate is any function object that takes a_GraphStructure::Node as a paramater and returns a bool. In order for this to work a function_GraphStructure::DeleteNode must be implemented in order to Delete the nodes. This exact function is implemented asprotected in IDGraphCreateTemplate so it should be easy.*

findBasicBlockForStmt

findFollowingPositions

findIfStmtForSC

findInitializedNamesInScope

Change all members in a program to be public. There should really be a smarter procedure for this that only changes members used by inlined code. Get all variable names declared within a scope, in the correct order for destruction

findIterator

findNearestParentOfType

findPosition

findPrecedingPositions

findRootFunc

Returns the function definition containing the specified statement.

findRoseSupportPathFromBuild

Find the path of a ROSE support file from the build tree.

findRoseSupportPathFromSource

Find the path of a ROSE support file from the source tree.

findStatementForExpression

findVariablesUsedInRegion

Find all variables referenced in a region

finishSageAST

fixReturnStatements

Workaround for ROSE bug. Should be used whenever expressions in a program are modified.

flattenBlocks

Flatten nested blocks of code in a program. This code requires that variable names in the region being processed are already distinct, and it may extend variable lifetimes to the end of the outer block of code.

formatRTIField

fortranAttributeStatementOwnsArrayShape

frontend

Simple APIs for ROSE (error codes are in SgProject.frontendErrorCode(), backendErrorCode()). @{

frontendExitStatus

@}

frontendShell

frontierDetectionForTokenStreamMapping

generateAstGraph

generateDOT

generateDOT_withIncludes

generateDOTforMultipleFile

generateGraphOfAST

generateGraphOfIncludeFiles

generateModFile

generateNameQualificationSupport

generatePDF

generateWholeGraphOfAST

generateWholeGraphOfAST overloads

generateWholeGraphOfAST_filteredFrontendSpecificNodes

getAffineIneq

getAffineIneqDesc

getAlgebraicRules

A standard set of algebraic rules for simple optimizations

getAllLiveVarsAt

getAllNodes

getArrayRefsInSubtree

getArrayVarRefsInSubtree

getCallGraph

getClangTranslationUnitSourceOrder

getDominators

getFiniteDifferencingRules

A standard set of algebraic and finite‐differencing rules

getLiveInVarsAt

getLiveOutVarsAt

getLocalScopeNum

Returns a unique positive integer ID to an SgScopeStatement within a function definition.

getNodeID

getNumCallers

getOpenMPBlockBody

getOperatorFunctionName

getParmVarDeclDefaultArgExpr

getPreprocessorDirectives

getReadVarRefsInSubtree

getRootOfExpression

Get the topmost enclosing expression of a given expression. Needs to be moved.

getStatementOfExpression

Get the statement of an expression. Somewhat smarter than the standard version of this routine, but needs to be merged.

getTokenStream

getVarRefsInSubtree

getVariantName

A global function for getting the string associated with an enum (which is defined in global scope)

getWriteVarRefsInSubtree

get_output_filename

globalUnparseToString

graphNodesAfterCopy

graph_trim_trailing_spaces

hasAddressTaken

Does expression expr potentially have its address taken somewhere in the tree pointed to by root?

initAnalysis

intermediateRepresentationNodeGraph

isClangSyntheticTemplateParamName

isConcreteClangQualType

isExactCLexicalRecordTagSourceSurface

isExactEmptyTranslationUnitTokenMapping

isFortranPairedDirective

isImplicitAutoPlaceholderTemplateParamName

isInstantiatedConversionOperatorDecl

isMemberVariable

Internal routine to check whether a given variable declaration is a member variable.

isNonFriendMemberFunctionDeclaration

isPotentiallyModified

Is expression expr potentially modified (assigned to, address taken, passed by non‐const reference) somewhere in the tree pointed to by root?

isSgExpression

isSgExpression overloads

isSgInitializedName

isSgInitializedName overloads

isSgStatement

isSgStatement overloads

isTypeConsidered

isVarExpr

is_id

is_num

is_operator

is_space

joinMangledQualifiers

Joins two sets of mangled qualifiers to form a new mangled qualifier.

joinMangledQualifiersToString

Joins two sets of mangled qualifiers to form a new mangled qualifier.

linearize_subtree

makeEdge

Utility function to make CFG Edges

makeRTIValueDescriptor

mangleExpression

Mangles a constant expression, needed for template arguments.

mangleFunctionName

Returns a mangled form of a C++ function name, as an SgName object.

mangleFunctionNameToString

Returns a mangled form of special C++ function names (excl. qualifiers).

mangleLocalScopeToString

Produces a mangled name for a scope statement.

mangleQualifiers

Mangles a chain of qualifiers, returning an SgName object.

mangleQualifiersToString

Mangles a chain of qualifiers followed from a given scope.

mangleSgValueExp

Mangles a boolean expression.

mangleTemplate

mangleTemplate overloads

mangleTemplateArgsToString

mangleTemplateArgsToString overloads

mangleTemplateFunction

Mangles an instantiated template function or member function, returning a SgName object.

mangleTemplateFunctionToString

Mangles an instantiated template function or template member function.

mangleTemplateToString

mangleTemplateToString overloads

mangleTranslationUnitQualifiers

If the declaration has translation unit scope (as opposed to program scope), mangle the translation unit name.

mangleTypes

Mangles a list of types, returning an SgName object.

mangleTypesToString

Mangles a container of types, returning an STL std::string object.

mangleValueExp

Mangles a value expression, as used in a template argument.

markClangAstStorageRangeDefinedForFrontend

markClangFrontendValgrindPublicationOnce

markClangNamedDeclNameForPrintingDefinedForFrontend

markClangNnsAstObjectDefined

markClangNnsNamespaceAndPrefixStorageDefined

markClangNnsNamespaceBaseDeclDefined

markClangNnsTypeObjectDefined

markClangNnsValueDefined

markClangQualTypeForPrintingDefinedForFrontend

markLhsValues

Mark relavant expressions as l‐values explicitly.

mark_compiler_generated_frontend_specific

mlogAssertFail_C

mlogLevelToString_CXX

mlogMore_C

mlogNullStream_CXX

mlog_C

moveForDeclaredVariables

Move variables declared in a for statement to just outside that statement.

myStatementInsert

Insert a new statement before or after a target statement. If allowForInit is true, the new statement can be inserted into the initializer of a for statement. Needs to be merged

nestedNameSpecifierHasTemplateKeyword

nestedNameSpecifierNamespace

nestedNameSpecifierNamespaceAlias

nestedNameSpecifierNamespaceAndPrefix

nestedNameSpecifierNamespaceBase

nestedNameSpecifierPrefix

normalizeClangTemplateParamName

omp_simd_write_arm

omp_simd_write_intel

operator&

Bitwise conjunction operators

operator&=

Bitwise conjunction assignment operators

operator*

Multiplication operators

operator+

Addition operators

operator‐

Unary minus operators

operator/

operator|

Bitwise disjunction operators

operator|=

Bitwise disjunction assignment operators

outputMap

outputPredefinedMacros

Output at least some of the predefined macro settings.

p_AddOp

Match an addition operation

p_CommaOp

Match a comma operation

p_MultiplyOp

Match a multiplication operation

p_PlusAssignOp

Match an add‐assign operation

p_int

Match a particular integer

p_value

Match any constant into a variable

p_var

Match anything into a variable

parseArraySectionExpression

parseExpression

parseOmpArraySection

parseOmpExpression

parseOmpVariable

parseTemplateParamDepthAndIndex

patact

Create a PatternActionRule

pcloseFromVector

peek_ch

peek_id

peek_next

popenReadFromVector

postProcessingSupport

printAffineInequalities

printConstrGraphAnalysisStates

printDivAnalysisStates

printDominatorAnalysisStates

printLiveDeadVarsAnalysisStates

printNodeConstAnalysisStates

printSeqStructAnalysisStates

printSgnAnalysisStates

propagateHiddenListData

Propagate hidden list information for variables, types, and class elaboration.

publishClangTranslationUnitSourceOrder

pushTestIntoBody

Rewrites a while or for loop so that the official test is changed to "true" and what had previously been the test is now an if‐break combination (with an inverted condition) at the beginning of the loop body

qualifiedTypeHasQualifier

qualifiedTypeQualifier

queryIsImportantForSliceType

queryIsImportantForSliceTypeWithCalls

readClangNnsApiValueDefined

read_ch

read_graph

read_id

read_list

Read a list of items of type ItemGen, they are separated using 'sep'

read_num

read_operator

rebindVariableAndLabelReferences

Change all variable and label references to point to new symbols, created to point to the matching declaration found in the program. This needs to be moved into somewhere in FixSgTree.

rememberClassTypeFirstSeenState

rememberEnumTypeFirstSeenState

removeNullStatements

Remove all null statements (those with only an integer constant or a null expression)

removeUnusedVariables

Remove unused variables in a scope

removeVariableDeclaration

Remove the declaration of a given variable

renameLabels

Rename all labels in a block of code.

renameVariables

Rename all variables in a block of code, and ensure that all variable references point to the correct declarations.

replaceAssignmentStmtWithStatement

Replace an assignment statement with the result of a statement generator. Assumptions: from has assignment expr at top level of statement from is not in the test of a loop or if statement not currently traversing from

replaceChild

Replace a child of a node.

replaceExpressionWithExpression

Replace the expression "from" with another expression "to", wherever it appears in the AST. The expression "from" is not deleted, and may be reused elsewhere in the AST.

replaceNonAlphaNum

reportNodesMarkedAsModified

requireClangFunctionDeclSourceProvenanceForFrontend

requireClangOrderedDeclarationProvenanceForFrontend

resetTypesInAST

resolveRoseClangPaths

resolveRosePaths

resolveTemplateParameterNameFromSageScopeShared

rewrite

Rewrite a node and its children recursively using a rule. Iterate until no more changes can be made.

roseInstallPrefix

Find the path of the ROSE install prefix.

rosePathIsWithinTree

roseResolveTestOutputPath

rose_getline

Reads a line of text from a stream.

rose_strtoull

Convert a string to an unsigned long integer.

runAffineIneqPlacer

runNodeConstAnalysis

runPlaceUniqueIDs

saveCFGsToDots

setTrueFalseIneq

affineInequalitiesPlacer *

shortCircuitingTransformation

simpleCopyAndConstantPropagation

In code with declarations such as "int foo = bar", where foo and bar are not modified, replace "foo" with "bar" and remove the declaration

simpleFrontierDetectionForTokenStreamMapping

simpleIndexFiniteDifferencing

Do a simple form of finite differencing on all functions contained within root (which should be a project, file, or function definition).

simpleUndoFiniteDifferencingOne

Propagate definitions of a variable to its uses. Assumptions: var is only assigned at the top level of body nothing var depends on is assigned within body Very simple algorithm designed to only handle simplest cases

sla

sla_set_debug

sourceQualificationFileLoc

sourceQualificationFromNestedNameSpecifierLoc

sourceQualificationHasNonWhitespace

sourceQualificationIsSemanticMacroExpansionFragment

sourceQualificationIsSemanticMacroFragment

sourceQualificationMatchesSemanticIdentity

sourceQualificationPrefixLoc

sourceQualificationSemanticHasGlobal

systemFromVector

templateParameterNameFromSageShared

templateParametersForSageDeclarationShared

testAstForUniqueNodes

testForCycleInTemplateArgumentsOfTemplateDeclaration

toStringForRTI

topLevelValidateParentPointers

This is a top level function not called recursively.

trimClangFrontendString

trimSpaces

Returns the input std::string stripped of leading and trailing spaces.

typedefDeclarationReferenceShared

unescapeString

unparseDirectory

Support for handling directories of files in ROSE (useful for code generation).

unparseFile

User callable function available if compilation using the backend compiler is not required.

unparseFileList

Support for refactored handling directories of files.

unparseIncludedFiles

User callable function available if compilation using the backend compiler is not required.

unparseProject

User callable function available if compilation using the backend compiler is not required.

unparse_alignas

unparse_asm_clobber_name

unparse_asm_label_name

unsetNodesMarkedAsModified

validateFreshSubtreeOwnership

Validate a fresh detached construction transaction.

validateOpenACCDirectiveForSage

validateParentPointers

Validate exact parent ownership for a published AST.

validateParentPointersOfClassOrNamespaceDeclarations

This is a top level function not called recursively.

validateTypedefDeclarationReferenceShared

version_message

version_number

writeList

write_graph

write_graph2

write_graph_node_edge

operator<<

Stream insertion operators

operator==

Equality operators

operator!=

Inequality operators

operator<

Less‐than operators

operator<=

Less‐than‐or‐equal operators

operator>

Greater‐than operators

operator>=

Greater‐than‐or‐equal operators