Skip to content

Global namespace

Namespaces

Name

Description

AST_Graph

ASTtools

AstDOTGenerationExtended_Defaults

AstQueryNamespace

Inherited attribute for AstQuery class.

AstUtilInterface

CLANG_ROSE_Graph

CPreproc

CallTargetSet

CommandlineProcessing

Command line processing utility functions. Functions in this namespace are in the ROSE Utilities library and

ConstantFolding

DUVariableAnalysisExt

Dbg

DominatorTreesAndDominanceFrontiers

IncludeFileGraph

IncludeFileSupport

Inliner

IntegerOps

Bit‐wise operations on integers.

IntegerOpsPrivate

MangledNameSupport

MaxSourceExtents

NameQuery

NewCallGraph

NodeQuery

NumberQuery

OmpSupport

Types and functions to support OpenMP

OpenAnalysis

Outliner

POET

ProcessExpression

ROSE_Analysis

ROSE_Statistics

This is a mechanism for reporting statistical data about the AST, subtrees, and IR nodes.

ROSE_token_ids

Rose

SageBuilder

High level SAGE III AST node and subtree builders.

SageInterface

Functions that are useful when operating on the AST.

SgNodeHelper

StaticCFG

TransformationTracking

VirtualCFG

WalrusGraph

arrIndexLabeler

cfgUtils

legacy

rwAccessLabeler

sg

This namespace contains template functions that operate on the ROSE AST

varSets

Types

Name

Description

AST_Error

AST_FILE_IO

Class holding static data and functions supporting File I/O.

AddPrototypesForTemplateInstantiations

AddPrototypesForTemplateInstantiationsInheritedAttribute

Inherited attribute required for AddPrototypesForTemplateInstantiations class.

AdhocDependenceTesting

AliasAnalysisInterface

AliasCfgFilter

AliasInfoGenerator

Helper class to hold Alias Information

AliasRelationNode

A struct to hold the information about an alias node

AllLoopReuseBlocking

Analysis

AndApplicator

AnnotCollectionBase

An interface to a single annotation item

AnyReuseFusionAnal

AppendPtrSet

AppendSTLSet

ArrangeNestingOrder

ArrangeOrigNestingOrder

ArrangeReuseOrder

ArrayAbstractionInterface

*QY: Interface classes used by loop optimizations**

ArrayAnnotation

ArrayCollection

ArrayConstructDescriptor

ArrayConstructOpCollection

ArrayDefineDescriptor

ArrayDescriptor

ArrayElemDescriptor

ArrayInterface

ArrayModifyDescriptor

ArrayModifyOpCollection

ArrayOptCollection

ArrayOptDescriptor

ArrayShapeDescriptor

ArrayUseAccessFunction

ArtificialFrontierTraversal

ArtificialFrontier_InheritedAttribute

ArtificialFrontier_SynthesizedAttribute

AssumeNoAlias

Ast2StringMap

AstAttribute

Base class for all IR node attribute values.

AstAttributeDOT

**

AstAttributeMechanism

Stores named attributes in Sage IR nodes.

AstBottomUpProcessing

Attribute evaluator for synthesized attributes.

AstCombinedBottomUpProcessing

AstCombinedPrePostProcessing

AstCombinedSimpleProcessing

AstCombinedTopDownBottomUpProcessing

AstCombinedTopDownProcessing

AstCycleTest

AstCycleTest is based on the successor information of SgNodes (the same information that is used by the traversals). It tests such that it allows a preorder traversal to revisit nodes but reports an error if the traversal would run into a cycle. If a cycle is found it reports the list of SgNodes that are part of the cycle to stdout, starting with "CYCLE FOUND: ..." and stops testing. Usage: AstCycleTest t; t.traverse(SgNode* n); // where n is the root node of the subtree to be tested.

AstDOTGeneration

AstDOTGenerationExtended

AstDiagnosticsClasses

AST Diagnostics

AstInheritedAttribute

AstIntAttribute

AstInterface

provides an abstract interface to access/modify AST nodes.

AstInterfaceImpl

AstNodePtr

AstNodePtrSynAttr

AstNodePtrs

AstNodeStatistics

Statistics about IR nodes used.

AstNodeType

AstNodeTypeImpl

AstNodeVisitMapping

AstObserver

This is the base class for anyone who wants to be notified when AST nodes are being copied.

AstPDFGeneration

AstPerformance

AstPreOrderTraversal

AstPrePostOrderTraversal

AstPrePostProcessing

AstProcessingClasses

AST Processing

AstProperties

AST Properties (Consistency Tests)

AstRegExAttribute

Attribute containing a regex expression as a string.

AstRestructure

AstReverseBranchInhProcessing

AstReverseBranchInhSynProcessing

///////////////////////////////////////////////////////////////////////////////////////

AstReverseBranchSimpleProcessing

///////////////////////////////////////////////////////////////////////////////////////

AstReverseBranchSynProcessing

AstReversePrefixInhProcessing

///////////////////////////////////////////////////////////////////////////////////////

AstReversePrefixInhSynProcessing

AstReversePrefixSimpleProcessing

///////////////////////////////////////////////////////////////////////////////////////

AstReversePrefixSynProcessing

AstSgNodeAttribute

Attribute storing an SgNode.

AstSimpleProcessing

Class for traversing the AST.

AstSuccessorsSelectors

AstSynthesizedAttribute

AstTerm

AstTests

AstTextAttribute

AstTextAttributesHandling

AstTopDownBottomUpProcessing

Attribute evaluator for inherited and synthesized attributes.

AstTopDownProcessing

Attribute evaluator for inherited attributes.

AstTreeDepGraphAnal

AstTreeDepGraphBuildImpl

AstTreeReplaceVar

AstUnparseAttribute

AstValueAttribute

IR node attribute that stores a copyable value.

AstWarnings

This is a mechanism for reporting warnings about the AST, subtrees, and IR nodes.

AttachAllPreprocessingInfoTreeTrav

AttachPreprocessingInfoTreeTrav

AttachPreprocessingInfoTreeTraversalInheritedAttrribute

AttachPreprocessingInfoTreeTraversalSynthesizedAttribute

AutoTuningInterface

BaseGraphCreate

BaseGraphCreateWrap

BetterReuseFusionAnal

BitVectorRepr

BitVectorReprBase

BitVectorReprBase<basic_string<char>, pair<AstNodePtr, AstNodePtr>>

BitVectorReprGenerator

BitVectorReprImpl

BlockCopyArraySpec

BlockLoopInfo

BlockSpec

BoolAndLattice

*** Commonly used lattices ****

BoolDescriptor

BooleanQuery

Simplifies development of queries on the AST resulting in a single boolean value.

BooleanQueryInheritedAttributeType

BooleanQueryReverseTraversalInheritedAttribute

BooleanQueryReverseTraversalSynthesizedAttribute

BooleanSafeKeeper

BottomUpTraversalLivenessIN

BottomUpTraversalLivenessOUT

BreakupStatement

BuildAstTreeDepGraph

BuildCFGConfig

BuildCFGTraverse

BuildListOfConnectedNodesInAST

BuildListOfNodesInAST

CFGConfig

CFGEdgeImpl

CFGImplTemplate

CFGNodeImpl

CGFunction

CPPAstInterface

CPPTypeCollection

CallGraphBuilder

ChainableTypeLayoutGenerator

Basic type layout engine ‐‐ handles bookkeeping, plus handing typedefs and

ClangToDotNextPreprocessorToInsert

ClangToDotPreprocessorInserter

ClangToDotPreprocessorRecord

ClangToDotTranslator

ClangToSageTranslator

Translator from Clang AST to SAGE III (ROSE Compiler AST)

ClassHierarchyWrapper

CloseDescriptor

A descriptor with begin(left) and end(right) characters, such as {x}, (x), etc

CmdOptions

CodeVar

Collect2Object

CollectAliasRelations

Helper class to collect Alias Relations

CollectDoublyLinkedList

CollectFunctions

CollectObject

CollectPair

A pair of items separated by 'sep'

CollectSinglyLinkedList

CollectTemplateInstantiationsMarkedForOutput

CollectionHelper

CompReprBase

CompReprPtr

A Shared Pointer Wrapper for CompactRepresentation

CompSlice

CompSliceAlignInfo

CompSliceDeleteInfo

CompSliceDepGraphCreate

CompSliceDepGraphNode

CompSliceFuseInfo

CompSliceImpl

CompSliceLocalityAnal

CompSliceLocalityRegistry

CompSliceLoop

CompSliceNest

CompSliceNestAlignEntryInfo

CompSliceNestDeleteEntryInfo

CompSliceNestDeleteInfo

CompSliceNestDuplicateEntryInfo

CompSliceNestFusionInfo

CompSliceNestObserveInfo

CompSliceNestObserver

CompSliceNestSwapInfo

CompSliceObserveInfo

CompSliceObserver

CompSliceRegistry

CompSliceSelect

CompSliceStmt

CompactRepresentation

CompareObject

CompilerOutputParser

CompilerOutputReader

ConstrGraph

ConstrGraphAnalysis

ContainerDescriptor

ContextInsensitiveInterProceduralDataflow

ControlDependenceGraph

CopyArrayConfig

CopyArrayOperator

CopyArraySpec

CopyArrayUnderSizeLimit

CopyAstRecord

CountRefHandle

CreateSlice

CreateSliceSet

CreateTmpArray

CustomAstDOTGeneration

CustomAstDOTGenerationData

CustomAstDOTGenerationEdgeType

CustomAstDOTGenerationNodeType

CustomMemoryPoolDOTGeneration

CustomMemoryPoolDOTGenerationData

CustomizedPrimitiveTypeLayoutGenerator

Layout generator for customized primitive types.

CxxCodeGenerator

Backend Cxx Code Generator

DAG

DAG<DAGBaseNodeImpl, DAGBaseEdgeImpl>

DAGBaseEdgeImpl

DAGBaseGraphImpl

DAGBaseNodeImpl

DAGEdge

DAGEdge<DAGBaseNodeImpl, DAGBaseEdgeImpl>

DAGNode

DAGNode<DAGBaseNodeImpl, DAGBaseEdgeImpl>

DFAnalysis

DFStateAtReturns

DGBaseEdgeImpl

DGBaseGraphImpl

DGBaseNodeImpl

DI

DOTGeneration

DOTGraphEdge

**

DOTGraphInterface

stl graph class for directed and undirected graphs

DOTGraphNode

**

DOTInheritedAttribute

DOTRepresentation

DOTRepresentation<SgNode*>

DOTSubgraphRepresentation

dot file representation with subgraphs

DOTSynthesizedAttribute

DS

DataDependenceGraph

DataFlowAnalysis

DataFlowNode

DebugLog

Declaration

DefUseAnalysis

DefUseAnalysisAbstract

DefUseAnalysisPF

DefUseChain

DefUseChainNode

DefaultCFGImpl

DefaultDUchain

DefineVariableDescriptor

DeleteEmptyOperatorNodes

DeleteNodeInfo

DeleteStmtLoopInfo

DepCompAstRef

DepCompAstRefAnal

DepCompAstRefGraphCreate

DepCompAstRefGraphNode

DepCompCopyArrayCollect

DepCompCopyArrayToBuffer

DepCompDistributeLoop

DepEDD

Extended dependence matrix:

DepInfo

DepInfoAlignLoop

DepInfoAnal

DepInfoAnalInterface

DepInfoEdge

DepInfoEdgeConstInfoIterator

DepInfoGenerator

DepInfoGraphCreate

DepInfoImpl

DepInfoInsertLoop

DepInfoMergeLoop

DepInfoRemoveLoop

DepInfoRestrictDomain

DepInfoSet

DepInfoSetEdge

DepInfoSetGenerator

DepInfoSetGraphCreate

DepInfoSetImpl

DepInfoSwapLoop

DepRel

DependenceGraph

DependenceHoisting

DependenceNode

DependenceTesting

DetectMacroOrIncludeFileExpansions

DetectMacroOrIncludeFileExpansionsInheritedAttribute

DetectMacroOrIncludeFileExpansionsSynthesizedAttribute

DetectTransformations

There sould not be any IR nodes marked as a transformation coming from the legacy frontend/ROSE translation. This test enforces this.

DirectedEdgeInterface

DirectedGraph

DirectedGraph<DAGBaseNodeImpl, DAGBaseEdgeImpl>

DirectedGraph<DGBaseNodeImpl, DGBaseEdgeImpl>

DirectedGraphEdge

DirectedGraphEdge<DAGBaseNodeImpl, DAGBaseEdgeImpl>

DirectedGraphEdge<DGBaseNodeImpl, DGBaseEdgeImpl>

DirectedGraphNode

DirectedGraphNode<DAGBaseNodeImpl, DAGBaseEdgeImpl>

DirectedGraphNode<DGBaseNodeImpl, DGBaseEdgeImpl>

DistNodeInfo

DistributedMemoryAnalysisPostTraversal

DistributedMemoryAnalysisPreTraversal

DivAnalysis

DivAnalysisTransfer

DivLattice

DomainCond

DomainInfo

DomainInfoImpl

DominatorAnalysis

DominatorLattice

DoublyLinkedEntryWrap

DoublyLinkedListWrap

DoublyLinkedListWrap<CopyArrayUnit>

DoublyLinkedListWrap<DataEntry>

DoublyLinkedListWrap<SymbolicTerm>

DoublyLinkedListWrap<DAGBaseEdgeImpl*>

DoublyLinkedListWrap<DAGBaseNodeImpl*>

DoublyLinkedListWrap<DGBaseEdgeImpl*>

DoublyLinkedListWrap<DGBaseNodeImpl*>

DoublyLinkedListWrap<LoopTreeNode*>

DummyISTestQuery1

DummyISTestQuery2

DummyISTestQuery3

DummyITestQuery1

DummyITestQuery2

DummyITestQuery3

DummySTestQuery1

DummySTestQuery2

DummySTestQuery3

DummyTestQuery1

DummyTestQuery2

DummyTestQuery3

DynamicCompSlice

DynamicSlicing

EDefUse

EdgeInfo

EqualApplicator

ExtendibleParamDescriptor

a parameter with a named range of values. parameter:range_name:lower_bound:upper_bound

ExtractFunctionArguments

This normalization makes sure each function call argument is a side‐effect free expression of only one variable. To accomplish this, temporary variables are declared and the arguments of a function are evaluated before the function itself. Note: Normalization is not performed if it is unsafe. E,g.: while(Foo(Bar()) {} is not equal to t = Bar(); while(Foo(t) {} Note that only SgFunctionCall arguments are normalized. For example the arguments of the constructor initializer MyObject o(foo(), bar()) will not be extracted.

FileHelper

FindAllFunctionCalls

FindAllNodesAnalysis

FiniteLattice

FiniteProductLattice

FiniteVariablesProductLattice

FiniteVarsExprsProductLattice

FixUpGlobalFunctionTypeTable

FixupAstDeclarationScope

FixupAstDefiningAndNondefiningDeclarations

FixupAstSymbolTables

FixupAstSymbolTablesToSupportAliasedSymbols

FixupDeclarations

Initialize the definingDeclaration and firstNondefiningDeclaration pointers in SgDeclarationStatement consistantly for all declarations. Also fixup special case of multiple forward declaration where only the first one (the firstNondefiningDeclaration) get a valid pointer to the defining declaration if it exists.

FixupEnumValues

This traversal uses the Memory Pool traversal to fixup the enum declarations referenced in the enum values (SgEnumVal).

FixupFortranReferences

FixupFortranUseDeclarations

FixupFriendDeclarations

This traversal uses the Memory Pool traversal to fixup the friend specifications on all declarations.

FixupFriendTemplateDeclarations

FixupFunctionDefaultArguments

FixupFunctionDefaultArgumentsInheritedAttribute

Inherited attribute required for FixupFunctionDefaultArguments class.

FixupFunctionDefinitions

FixupInClassDataInitialization

Modified const double variable initialized in‐class to be static const double with initializer.

FixupInitializersUsingIncludeFilesInheritedAttribute

Inherited attribute required for FixupInitializers class.

FixupInitializersUsingIncludeFilesSynthesizedAttribute

FixupInitializersUsingIncludeFilesTraversal

Fixup known ways in which inlcude files are used to initialized variable.

FixupNullPointersInAST

Fixup pointers in the AST that user's may have left as NULL, but should not be NULL.

FixupPrettyFunctionVariables

This traversal uses inherited attributes to fixup the variables put into the AST that match the function name (a legacy frontend quirk to signal that the variable name is "*PRETTY_FUNCTION*").

FixupPrettyFunctionVariablesInheritedAttribute

FixupSelfReferentialMacrosInAST

Fixup known macros that reference themselves and cause recursive macro expansion in the generated (unparsed) code.

FixupSourcePositionConstructs

This traversal uses the Memory Pool traversal to fixup the source position constructs.

FixupSourcePositionInformation

FixupSourcePositionInformationInheritedAttribute

FixupSourcePositionInformationSynthesizedAttribute

FixupStorageAccessOfForwardTemplateDeclarations

Fixup the storage access of all compiler‐generated forward declarations (non‐defining declarations) to match that of the defining declaration.

FixupTemplateArguments

FixupTemplateDeclarations

FixupTemplateInstantiations

FixupTypeReferencesOnMemoryPool

FixupforGnuBackendCompiler

Recognize and eliminate redundent calls to the same casting operator (or constructor initializer)

FortranCodeGeneration_locatedNode

FortranCodeGenerator

Backend Fortran Code Generator

FrontierDetectionForTokenStreamMapping

FrontierDetectionForTokenStreamMappingAttribute

FrontierDetectionForTokenStreamMapping_InheritedAttribute

FrontierDetectionForTokenStreamMapping_SynthesizedAttribute

FrontierNode

Function

FunctionAliasInterface

FunctionCallInfo

Stores a function call expression, along with associated information about its context.

FunctionCallInheritedAttribute

FunctionCallNormalization

FunctionData

FunctionDependenceGraph

FunctionEvaluationOrderTraversal

Traverses a given AST and finds all function calls in the order in which they're evaluated Also, for each function we find where to put declarations of temporary variables so that they're accessible at the function call

FunctionSideEffectInterface

FunctionState

FuseLoopInfo

FusionInfo

GetOneFuncDeclarationPerFunction

GlobalVarAnalysis

GraphAccess

GraphAccessTemplate

GraphAccessTemplate<void, void>

GraphAccessWrapTemplate

GraphCrossEdgeIterator

GraphDotOutput

GraphEdgeIterator

GraphGetNodeReachable

GraphNodePredecessorIterator

GraphNodeSuccessorIterator

GraphReverseEdge

GraphSelect

GraphTransAnalysis

Graph_TokenMappingTraversal

GroupGraphCreate

GroupGraphEdge

GroupGraphNode

GroupNodeSelect

HandleMap

HasValueCodeGen

HasValueCollection

HasValueDescriptor

HasValueMap

HasValueMapReplace

HoldAncesLoopObserver

HoldLoopAlignObserver

HoldTreeNodeObserver

I386PrimitiveTypeLayoutGenerator

Layout generator for i386 primitive types

I386_VSPrimitiveTypeLayoutGenerator

Slight modification for Visual Studio ‐‐ doubles are 8‐byte aligned

IRCallsiteIterator

IRCallsiteParamIterator

IRInterface

IRProcIterator

IRStmtIterator

IRUseDefIterator

InOrderTraversal

IncludeDirective

IncludedFilesUnparser

IncludingPreprocessingInfosCollector

InfiniteLattice

InfiniteProductLattice

InfiniteVariablesProductLattice

InfiniteVarsExprsProductLattice

InitDataflowState

InitializeExplicitScopes

Support for initialization of explicit scopes (located only at specific IR nodes).

InnerLoopReuseBlocking

InnermostLoopFission

InsertFortranContainsStatement

InsertLoopInfo

InsertStmtLoopInfo

IntDescriptor

IntMaxLattice

InterProcDataFlowAnalysis

InterProcVariableUniqueRepr

InterProceduralAnalysis

InterProceduralDataflow

* Dataflow Analyses **

IntermediateRepresentationNodeGraph

InterproceduralInfo

IntraBWDataflow

IntraDFTransferVisitor

Apply an analysis A's transfer function at a particular AST node type

IntraFWDataflow

IntraPartitionDataflow

IntraPartitionDataflowCheckpoint

IntraPartitionFWDataflow

IntraProcAliasAnalysis

IntraProcedurial DataFlow Analysis to compute exit and entry from all the function which

IntraProcDataFlowAnalysis

IntraProceduralAnalysis

IntraProceduralDataflow

IntraUniDirectionalDataflow

IntraUnitDataflow

IsDFAFilter

IsDefUseFilter

Struct containing a filtering function to determine what CFG nodes are interesting during the DefUse traversal. This is a functor.

IsImportantForSliceCFGFilter

IteratorImpl

IteratorImplTemplate

IteratorWrap

JavaCodeGenerator

Backend Java Code Generator

LDVAExpressionTransfer

Visits live expressions ‐ helper to LiveDeadVarsTransfer

LanguageIndependentCodeGenerator

Backend Language Independent Code Generator

Lattice

LatticeElemList

LatticeElemList<SymbolicTerm>

LatticeElemMerge

LinearizeAST

LinearizeInheritedAttribute

LiveDeadVarsAnalysis

LiveDeadVarsTransfer

LiveVarsLattice

LivenessAnalysis

LocalVar

LogicalCond

LoopAlignInfo

LoopAnalInfo

LoopBlocking

LoopFusionAnal

LoopInfo

LoopInterface

LoopNestFusion

LoopNoBlocking

LoopPar

LoopStepInfo

LoopTransformInterface

*QY: Singular interface class which remembers configurations for loop optimizations**

LoopTransformOptions

LoopTreeBlockLoop

LoopTreeBlockLoopNode

LoopTreeBuild

LoopTreeCodeGenInfo

LoopTreeCopyArray

LoopTreeCopyArrayToBuffer

LoopTreeCreate

LoopTreeDepComp

LoopTreeDepCompCreate

LoopTreeDepCompSubtree

LoopTreeDepGraphCreate

LoopTreeDepGraphNode

LoopTreeDepGraphSubtree

LoopTreeDistributeNode

LoopTreeDummyNode

LoopTreeEmbedStmt

LoopTreeGetVarBound

LoopTreeGetVarConstBound

LoopTreeIfCond

LoopTreeInterface

LoopTreeLocalityAnal

LoopTreeLoopNode

LoopTreeMergeLoop

LoopTreeMergeStmtLoop

LoopTreeNode

LoopTreeNodeDepMap

LoopTreeObserveImpl

LoopTreeObserveInfo

LoopTreeObserver

LoopTreeRelateLoopIvar

LoopTreeReplAst

LoopTreeReplLoopVar

LoopTreeReplaceAst

LoopTreeRestrLoopRange

LoopTreeRoot

LoopTreeShadowCreate

LoopTreeShadowNode

LoopTreeShadowSelect

LoopTreeSplitStmt

LoopTreeStmtNode

LoopTreeSwapNodePos

LoopTreeTransform

LoopTreeTraverse

LoopTreeTraverseSelectLoop

LoopTreeTraverseSelectStmt

LoopUnrolling

MacroDirective

MacroExpansion

MakeUniqueVar

MakeUniqueVarGetBound

Map2Object

MapDescriptor

MapObject

MapVarBound

MarkAsCompilerGenerated

Mark an AST subtree as compiler generated (used for instatiated templates generated by ROSE as specializations).

MarkBackendSpecificFunctionsAsCompilerGenerated

Supporting traversal to mark an backend specific functions as compiler generated.

MarkForOutputInCodeGeneration

Mark an AST subtree as compiler generated and to be output in the source file (code generation phase).

MarkLhsValues

Explicitly mark lhs operands of specific operators as lvalues.

MarkOverloadedTemplateInstantiations

Mark any template instatiations that are overloaded (we can't output these since g++ can't resolve them).

MarkSharedDeclarationsForOutputInCodeGeneration

Mark an AST subtree to be unparsed using an alternative file (for multi‐file unparsing).

MarkSharedDeclarationsInheritedAttribute

MarkTemplateInstantiationsForOutput

Class implementing template instantiation details in Sage III.

MarkTemplateInstantiationsForOutputSupport

MarkTemplateInstantiationsForOutputSupportInheritedAttribute

Inherited attribute required for MarkTemplateSpecializationsForOutputSupport class.

MarkTemplateInstantiationsForOutputSupportSynthesizedAttribute

Synthesized attribute required for MarkTemplateSpecializationsForOutputSupport class.

MarkTemplateSpecializationsForOutput

MarkTemplateSpecializationsForOutputInheritedAttribute

Inherited attribute required for MarkTemplateSpecializationsForOutput class.

MarkTransformationsForOutput

MarkTransformationsForOutputInheritedAttribute

Inherited attribute required for MarkTemplateSpecializationsForOutput class.

Matrix

MergeAllReturnStates

MergeLoopInfo

MergeStmtLoopInfo

MergedDependenceGraph

MetricAttribute

Attribute corresponding to a metric.

MissingTemplateHeaderFixupAttribute

ModifyVariableMap

MultiGraphCreate

MultiGraphDeleteEdgeInfo

MultiGraphDeleteNodeInfo

MultiGraphElem

MultiGraphElemTemplate

MultiGraphObserveEdgeTemplate

MultiGraphObserveNodeTemplate

MultiGraphObserver

MultiIterator

MultiLevelFusion

MultiplyApplicator

NameDescriptor

NameGenerator

NameQualificationInheritedAttribute

NameQualificationSynthesizedAttribute

NameQualificationTraversal

NameQueryInheritedAttributeType

Inherited attribute for NameQuery class.

NextPreprocessorToInsert

NoCopyArrayOperator

NoFunctionAliasAnalysis

NoFunctionSideEffectAnalysis

NodeFact

* NodeFact * A fact associated with a CFG node by * some analysis thatis not evolved as part * of a dataflow analysis (i.e. it should * stay constant throughout the analysis). **

NodeID

NodeQueryInheritedAttributeType

Inherited attribute for NodeQuery class.

NodeState

NonpackedTypeLayoutGenerator

Layout generator for i386 ABI‐like struct layout

NormalizeTypedefSequenceLists

This traversal uses the Memory Pool traversal to fixup the lists of typedef using this base type.

NormalizeTypedefSequenceLists_CopyList

NotApplicator

NotSelectPtrSet

NumberQueryInheritedAttributeType

Inherited attribute for NumberQuery class.

OPApplicator

OPDescriptorTemp

ObserveInfo

ObserveObject

ObserveTransform

OmpSimdCompiler

OperatorAliasAnnotation

OperatorAliasCollection

OperatorAllowAliasCollection

OperatorAnnotCollection

OperatorCallInfoCollection

OperatorDeclaration

Representation for an operator (function)

OperatorInlineAnnotation

OperatorInlineDescriptor

OperatorInlineRewrite

OperatorKillInfoCollection

OperatorModInfoCollection

OperatorReadInfoCollection

OperatorSideEffectAnnotation

OperatorSideEffectDescriptor

OptSpec

OrigLoopFusionAnal

OuterLoopReuseBlocking

PDFGeneration

PDFInheritedAttribute

POETCode

POETProgram

ParLoopSpec

ParallelizeBlocking

ParallelizeLoop

ParameterDeclaration

Representation for function parameter names and types.

ParameterizeBlocking

ParameterizeCopyArray

PartitionedAnalysis

Pattern

Abstract interface for a pattern which can match ASTs

PatternActionRule

A rule which changes one pattern of code to another

PerfectLoopReversible

PerfectLoopSlicable

PlusApplicator

PointerHolder

PostOrderTraversal

PreOrderTraversal

PrePostOrderTraversal

PrePostTransformation

PreprocessingInfo

For preprocessing information including source comments, include , if, define, etc

PreprocessorInserter

PreviousAndNextAttribute

PreviousAndNextNodeData

PrivatizeScalar

ProcessAstNode

Interface class for processing each AstNode from within the ReadAstTraverse function.

ProcessAstTree

ProcessAstTreeBase

ProcessTemplateHandlingOptions

ProcessingPhase

ProductLattice

PropagateHiddenListData

PropagateHiddenListDataInheritedAttribute

Inherited attribute required for hidden list propagation to child scopes.

PtrAliasAnalysis

PtrAliasAnalysis computes Alias Information, which is used for Virtual Function Resolving.

PtrAnal

PtrMapWrap

PtrSetWrap

PtrSetWrap<AstObserver>

PtrSetWrap<CompSliceNestObserver>

PtrSetWrap<CompSliceObserver>

PtrSetWrap<LoopTreeObserver>

PtrSetWrap<MultiGraphObserver>

PtrSetWrap<void>

ROSEAttributesList

ROSEAttributesListContainer

ROSEHPCT

ROSE HPCToolkit Module

ROSEHPCT_EXAMPLES

ROSE‐HPCT examples

ROSE_3rdPartyLibrariesGroup

ROSE 3rd Party Libraries

ROSE_AST_InliningGroup

Inlining Transformations

ROSE_FrontEndGroup

ROSE Frontend Group

ROSE_MemoryUsage

ROSE_ProgramTransformationGroup

ROSE Program Transformations

ReachingDefNode

ReachingDefinitionAnalysis

ReachingDefinitionBase

ReachingDefinitionFacade

ReachingDefinitionGenerator

ReadAnnotCollection

ReadAnnotation

An interface to read into type(class) and operator(function) annotations

ReadContainer

ReadContainerWrap

ReadError

ReadSymbolicFunctionDeclaration

RemoveInitializedNamePtr

RemoveInitializedNamePtrInheritedAttribute

ReplaceParams

ResetContructorInitilizerLists

This traversal uses the Memory Pool traversal to fixup names of template classes that appear in constructor preinitialization lists.

ResetEmptyNames

This traversal uses the Memory Pool traversal to fixup names ofdeclarations that are inconsistant (e.g SgclassDeclarations).

ResetFileInfoParentPointersInMemoryPool

This traversal uses the Memory Pool traversal to fixup remaining parent pointers in Sg_File_Info objects.

ResetInconsistantNames

This traversal uses the Memory Pool traversal to fixup names ofdeclarations that are inconsistant (e.g SgclassDeclarations).

ResetParentPointers

This traversal implements the mechanism to reset all parent pointers (back edges in the AST graph)

ResetParentPointersInMemoryPool

This traversal uses the Memory Pool traversal to fixup remaining parent pointers.

ResetParentPointersInheritedAttribute

Inherited attribute required for ResetParentPointers class.

ResetParentPointersOfClassAndNamespaceDeclarations

This traversal implements the mechanism to reset all parent pointers (back edges in the AST graph)

ResetTemplateNames

Sets names of template classes.

ResetTemplateNamesOnMemoryPool

ResetTypes

This traversal uses the Memory Pool traversal to fixup types indeclarations that can be shared but are not. (e.g SgclassDeclarations).

RestrictValueOpCollection

RestrictValueOpDescriptor

RewriteArrayModOp

RewriteConstructArrayAccess

RewriteFragmentIdentificationTraversal

AST Rewrite fragment identification traversal

RewriteFromArrayAst

RewriteMechanism

AST Rewrite Mechanism

RewriteNestedClasses

AST Rewrite nested classes

RewriteRule

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.

RewriteRuleCombiner

Combine several rules into one, doing the constituents in order

RewriteToArrayAst

RoseAst

Interface for iterating over an AST.

RoseClangPathRoots

RoseOpenMPPragmaCallback

RosePathRoots

RoseSelectObject

RowVector

SCCAnalOperator

SCCAnalysis

SCCGraphCreate

SCCGroupGraphOperator

SDGLibraryExtender

SageClasses

Sage III Intermediate Representation

SageExpression

Sage III Expression Classes

SagePreprocessorRecord

SageStatement

Sage III Statement Classes

SageSymbol

Sage III Symbol Classes

SageType

Sage III Type Classes

SameLevelFusion

SaveDotAnalysis

* SaveDotAnalysis **

Select2Object

SelectApplicator

SelectApplicatorWithBound

SelectArray

SelectObject1

SelectObject2

SelectPair

Similar to CollectPair, but the second item may start with 'sel' without 'sep' in front of it.

SelectPtrSet

SelectSTLSet

SelectSingleNode

SeqStructAnalysis

SeqStructLattice

SetDep

SetDepEntry

SetDescriptor

SgAggregateInitializer

RHS of an array variable declaration with optional assignment.

SgAsmBlock

Binary AST block node.

SgAsmOp

SgAsmStmt

This class represents the concept of a C Assembler statement.

SgAssignInitializer

This class represents the rhs of a variable declaration which includes an optional

SgBasicBlock

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

SgBinaryNode

This class represents the base class for all IR nodes supporting the binary

SgBinaryOp

This class represents the notion of a binary operator.

SgBoolValExp

This class represents a boolean value (expression value).

SgBottomUpProcessing

SgBreakStmt

This class represents the notion of a break statement

SgCallExpression

This class represents the concept of a generic call expression.

SgCaseOptionStmt

This class represents the concept of a C and C++ case option (used within a switch statement).

SgCastExp

This class represents a cast of one type to another.

SgCatchOptionStmt

This class represents the concept of a catch within a try‐catch construct used in

SgCatchStatementSeq

This class represents the concept of a C++ sequence of catch statements.

SgClassDeclaration

This class represents the concept of a class declaration statement. It includes the

SgClassDefinition

This class represents the concept of a class definition in C++.

SgClassNameRefExp

This class represents the concept of a C++ expression built from a class name.

SgClassSymbol

This class represents the concept of a class name within the compiler.

SgClinkageStartStatement

This class represents the concept of a C style extern "C" declaration. But

SgCombinedTreeTraversal

SgConditionalExp

This class represents the concept of a C trinary conditional expression (e.g. "test ? true : false")

SgConstructorInitializer

This class represents the call of a class constructor to initialize a variable.

SgContinueStmt

This class represents the concept of a C or C++ continue statement.

SgCtorInitializerList

This class represents the concept of a contructor initializer list (used in

SgDeclarationModifier

This class represents modifiers for SgDeclaration (declaration statements).

SgDeclarationStatement

This class represents the concept of a declaration statement.

SgDefaultOptionStmt

This class represents the concept of a C or C++ default case within a switch

SgDeleteExp

This class represents the concept of a C++ call to the delete operator.

SgDirectedGraphEdge

SgDirectory

This class represents a directory within a projects file structure of files and directories.

SgDoWhileStmt

This class represents the concept of a do‐while statement.

SgDotExp

SgDoubleVal

This class represents the notion of an value (expression value).

SgEnumDeclaration

This class represents the concept of an enum declaration.

SgExecStatement

This class represents the concept of the dynamic execution of a string,

SgExprListExp

This class represents the concept of a C and C++ expression list.

SgExprStatement

This class represents the concept of a C or C++ statement which contains a

SgExpression

This class represents the notion of an expression. Expressions

SgFile

This class represents a source file for a project (which may contian

SgFloatVal

This class represents the notion of an value (expression value).

SgForInitStatement

This class represents the variable declaration or variable initialization withn a

SgForStatement

This class represents the concept of a for loop.

SgFunctionCallExp

This class represents the concept of a C++ function call (which is an expression).

SgFunctionDeclaration

This class represents the concept of a function declaration statement.

SgFunctionDefinition

This class represents the concept of a scope in C++ (e.g. global scope, fuction scope, etc.).

SgFunctionParameterList

This class represents the concept of a declaration list.

SgFunctionRefExp

This class represents the function being called and must be assembled in the

SgFunctionSymbol

SgFunctionType

This class represents a type for all functions.

SgFunctionTypeSymbol

This class represents the concept of a name and a type. It may be

SgFunctionTypeTable

This class represents the function type table (stores all function types so that

SgGlobal

This class represents the concept of a namespace definition.

SgGotoStatement

This class represents the concept of a C or C++ goto statement.

SgGraphNode

SgIfStmt

This class represents the concept of an "if" construct.

SgIncidenceDirectedGraph

SgInheritedAttribute

SgInitializedName

This class represents the notion of a declared variable.

SgInitializer

This class represents the notion of an initializer for a variable declaration or

SgIsNotOp

This class represents the physical disequality (often called pointer disequality) operator

SgIsOp

This class represents the physical equality (often called pointer equality) operator

SgLabelRefExp

SgLabelStatement

This class represents the concept of a C or C++ label statement.

SgLabelSymbol

SgLambdaRefExp

This class represents a lambda expression.

SgListExp

This class represents a list display.

SgLocatedNode

This class represents the notion of an expression or statement which

SgLongDoubleVal

This class represents the notion of an value (expression value).

SgMemberFunctionDeclaration

This class represents the concept of a member function declaration statement.

SgMemberFunctionRefExp

This class represents the member function being called and must be assembled in the

SgMemberFunctionSymbol

SgMinusOp

This class represents the numeric negation of a value. Not to

SgModifier

This class represents the base class of a number of IR nodes define modifiers

SgModifierNodes

This class is not used in ROSE, but is intended to represent a list of SgModifierTypes

SgName

This class represents strings within the IR nodes.

SgNamedType

SgNamespaceAliasDeclarationStatement

This class represents the concept of a C++ namespace alias declaration statement.

SgNamespaceDeclarationStatement

This class represents the concept of a C++ namespace declaration.

SgNamespaceDefinitionStatement

This class represents the concept of a namespace definition.

SgNamespaceSymbol

This class represents the concept of a namespace name within the compiler.

SgNaryBooleanOp

This class represents the notion of an n‐ary boolean operation.

SgNaryComparisonOp

This class represents the notion of an n‐ary comparison operation.

SgNaryOp

This class represents the notion of an n‐ary operator.

SgNewExp

This class represents the concept of a C++ call to the new operator.

SgNode

This class represents the base class for all IR nodes within Sage III.

SgOmpBarrierStatement

SgOmpBodyStatement

SgOmpClause

SgOmpClauseBodyStatement

SgOmpDeclareSimdStatement

SgOmpDefaultClause

SgOmpExpressionClause

SgOmpFlushStatement

SgOmpScheduleClause

SgOmpTaskwaitStatement

SgOmpThreadBodyStatement

SgOmpVariablesClause

SgOptions

This class represents an object used to initialize the unparsing.

SgPointerAssignOp

This class represents a Fortran pointer assignment. It is not

SgPointerType

SgPragmaDeclaration

This class represents the concept of a C Assembler statement (untested).

SgProject

This class represents a source project, with a list of SgFile objects and global

SgPythonGlobalStmt

This class represents the concept of a 'global' stmt in Python

SgQualifiedName

This class represents a OLD concept of the structure require

SgQualifiedNameType

This class represents a OLD concept of the structure require

SgRefExp

This class represents the "&" operator (applied to any lvalue).

SgReferenceType

SgReturnStmt

This class represents the concept of a C Assembler statement (untested).

SgRvalueReferenceType

SgScopeOp

This class was part of CC++ support from a long time ago.

SgScopeStatement

This class represents the concept of a scope in C++ (e.g. global scope, fuction scope, etc.).

SgSimpleProcessing

SgSizeOfOp

This class represents the "sizeof()" operator (applied to any type).

SgSourceFile

SgSpawnStmt

This class is part of the older CC++ concept. It is not a part of C or C++ (this IR

SgStatement

This class represents the notion of a statement.

SgStatementExpression

This class represents the GNU extension "statement expression" (thus is

SgStmtDeclarationStatement

This class is intended to be a wrapper around SgStatements, allowing

SgStorageModifier

This class represents modifiers specific to storage.

SgStringConversion

This class represents the conversion of an arbitrary expression to

SgSupport

This class represents the base class of a numbr of IR nodes that don't otherwise fit

SgSwitchStatement

This class represents the concept of a switch.

SgSymbol

This class represents the concept of a name within the compiler.

SgSymbolTable

This class represents the symbol tables used in both SgScopeStatement and

SgSynthesizedAttribute

SgTemplateArgument

This class represents template argument within the use of a template to build an instantiation.

SgTemplateDeclaration

This class represents the concept of a template declaration.

SgTemplateInstantiationDecl

This class represents the concept of an instantiated class template.

SgTemplateInstantiationDefn

This class represents the concept of a class definition in C++.

SgTemplateInstantiationDirectiveStatement

This class represents the concept of a C++ template instantiation directive.

SgTemplateInstantiationFunctionDecl

This class represents the concept of an instantiation of function template.

SgTemplateInstantiationMemberFunctionDecl

This class represents the concept of an instantiation of member function template

SgTemplateInstantiationTypedefDeclaration

SgTemplateParameter

SgTemplateParameterList

SgThisExp

This class represents the "this" operator (can be applied to any member data).

SgThrowOp

This class represents the C++ throw expression (handled as a unary operator).

SgTopDownBottomUpProcessing

SgTopDownProcessing

SgTreeTraversal

Temporary traversal base class (do not use).

SgTryStmt

This class represents the concept of try statement within the try‐catch

SgTupleExp

This class represents a tuple display.

SgType

This class represents the base class for all types.

SgTypeComplex

This class represents a C99 complex type.

SgTypeDefault

This class represents a default type used for some IR nodes (see below).

SgTypeImaginary

This class represents a C99 complex type.

SgTypeString

This class represents a string type used for SgStringVal IR node.

SgTypedefDeclaration

This class represents the notion of a typedef declaration.

SgTypedefSeq

This class represents a list of associated typedefs for the SgType IR nodes which

SgUnaryOp

This class represents the notion of a unary operator.

SgUnparse_Info

SgUsingDeclarationStatement

This class represents the concept of a C++ using declaration.

SgUsingDirectiveStatement

This class represents the concept of a C++ using directive.

SgValue

SgValueExp

This class represents the notion of an value (expression value).

SgVarRefExp

This class represents the variable refernece in expressions.

SgVariableDeclaration

This class represents the concept of a C or C++ variable declaration.

SgVariableDefinition

This class represents the definition (initialization) of a variable.

SgVariableSymbol

This class represents the concept of a variable name within the compiler (a

SgWhileStmt

This class represents the concept of a do‐while statement.

Sg_File_Info

This class represents the location of the code associated with the IR node in the

SgnAnalysis

SgnLattice

SideEffectAnalysisInterface

SimpleDirectedGraph

This provides some simple support mechanisms to create a graph of SimpleDirectedGraphNodes.

SimpleDirectedGraphNode

This is a node in the directed graph. All the connectivity information for the graph is captured in this (by way of the successor and predecessor sets).

SimpleFrontierDetectionForTokenStreamMapping

SimpleFrontierDetectionForTokenStreamMapping_InheritedAttribute

SimpleFrontierDetectionForTokenStreamMapping_SynthesizedAttribute

SingleIterator

SingleNodeCopyEdge

SingleNodeMoveEdge

SingleStatementToBlockNormalizer

SingleValBound

SinglyLinkedEntryWrap

SinglyLinkedListWrap

SlicingInfo

SplitStmtInfo

SplitStmtInfo2

StackFrameVector

StmtInfoCollect

StmtSideEffectCollect

StmtVarAliasCollect

StringDescriptor

A descriptor for an identifier

StructCustomizedSizes

Support for cross compilation or customized primitive type layouts.

StructLayoutEntry

StructLayoutInfo

SubMatrix

Support

SwapNodeInfo

SwapStmtLoopInfo

SymbolicAnd

SymbolicAstWrap

SymbolicBound

SymbolicBoundAnalysis

SymbolicCond

SymbolicConst

SymbolicConstBoundAnalysis

SymbolicDotExp

SymbolicEq

SymbolicExpr

SymbolicExtendVar

SymbolicFunction

SymbolicFunctionDeclaration

A symbolic function declaration with

SymbolicFunctionDeclarationGroup

A list of symbolic function declarations, separated by ',', enclosed in '(..)'

SymbolicFunctionPtrCall

SymbolicMultiply

SymbolicNot

SymbolicOperands

SymbolicParamListDescriptor

A list of parameter descriptors, separated by ',', enclosed in '(..)'

SymbolicPlus

SymbolicPow

SymbolicSelect

SymbolicTerm

SymbolicVal

SymbolicValDescriptor

SymbolicVal with I/O interface

SymbolicValGenerator

* Symbolic Operator interface **

SymbolicValImpl

SymbolicVar

SymbolicVisitor

SystemDependenceGraph

SystemPrimitiveTypeLayoutGenerator

Layout generator for the native system (uses sizeof)

TaintAnalysis

Taint Flow Analysis******

TaintLattice

A pointer to a vertex of the static taint lattice.

TestAstAccessToDeclarations

TestAstCompilerGeneratedNodes

TestAstForCyclesInTypedefs

TestAstForProperlyMangledNames

TestAstForProperlySetDefiningAndNondefiningDeclarations

TestAstForUniqueNodesInAST

TestAstForUniqueStatementsInScopes

TestAstNullPointers

TestAstProperties

TestAstPropertiesSA

TestAstSymbolTables

TestAstTemplateProperties

TestChildPointersInMemoryPool

This traversal uses the Memory Pool traversal to test parent pointers.

TestExpressionTypes

TestFirstNondefiningDeclarationsForForwardMarking

This tests the first non‐defining, referenced from each declaration, to make sure that it is not a forward declaration (a non‐defining declaration marked to be a forward declaration).

TestForDisconnectedAST

TestForMultipleWaysToSpecifyRestrictKeyword

TestForParentsMatchingASTStructure

TestForProperLanguageAndSymbolTableCaseSensitivity

TestForProperLanguageAndSymbolTableCaseSensitivity_InheritedAttribute

TestForReferencesToDeletedNodes

TestForSourcePosition

TestLValueExpressions

TestLValues

TestMangledNames

TestMappingOfDeclarationsInMemoryPoolToSymbols

This traversal uses the Memory Pool traversal to test declarations and if their associated symbol can be located.

TestMultiFileConsistancy

TestParentPointersInMemoryPool

This traversal uses the Memory Pool traversal to test parent pointers.

TimingPerformance

TokenStreamSequenceToNodeMapping

TokenStreamSequenceToNodeMapping_key

TraceOnlyPerformance

TracingPerformance

TransAnalSCCCreate

TransDepAnalImpl

TransDepGraphCreate

TransInfoGraph

**** This is the graph to store the result of transitive analysis. An object of this class is passed as argument to construct a GraphTransAnalysis operator, and as we invoke GraphTransAnalysis::ComputeTransInfo to compute transitive info between nodes of the input graph, the transitive info is stored into TransInfoGraph by calling TransInfoGraph::SetTransInfo. Users of GraphTransAnalysis must implement all three virtual functions defined TransInfoGraph, to record and return transitive information already computed. The template paramter T is the type of transitive information (the result of transitive analysis). It models information regarding transitive paths in the input graph

TransInfoOP

TransLoopDistributable

TransLoopFusible

TransLoopReversible

TransLoopSlicable

TransformAstTree

Interface class for processing each AstNode from within the TransformAstTraverse function.

TraverseCallGraph

TraverseCallGraphBottomUp

TraverseCallGraphDataflow

TraverseCallGraphTopDown

TraverseCallGraphUnordered

TreeNodeImpl

TreeTraversal

TreeTraverse

TypeAnnotCollection

TypeCollection

A map storing types and their descriptors, the descriptor could be any instantiated types as a template class.

TypeDescriptor

TypedFusion

TypedFusionOperator

UF_elem

UnaryOPApplicator

UnaryOperator

UniqueArrayCollection

UnparseDelegate

UnparseFormat

UnparseFormatHelp

UnparseFortran_type

UnparseLanguageIndependentConstructs

Unparse_Debug

Unparse_ExprStmt

Unparse_MOD_SAGE

Unparse_Sym

Unparse_Type

Unparser

Backend C and C++ code generator.

UnparserFortran

Unparser_Nameq

Unparser_Opt

UnrollSpec

UnstructuredPassInterAnalysis

UnstructuredPassInterDataflow

*** UnstructuredPassInterDataflow * The trivial inter‐procedural dataflow where a intra‐procedural * dataflow analysis is executed once on every function in the * application, with no guarantees about how dataflow information * is transmitted across function calls. ****

UnstructuredPassIntraAnalysis

UnstructuredPassAnalyses *

UpdateDefUseChainNode

UpdateDepEdgeInfo

UpdateDepInfo

UpdateEdgeInfo

Utf8

ValTermVisitor

ValueAnnotation

ValuePropagate

ValuePropagateNode

VarInfo

VarUniqueName

Class holding a unique name for a variable. Is attached to varRefs as a persistent attribute. This is used to assign absolute names to VarRefExp nodes during VariableRenaming.

VariableRenaming

Class that defines an VariableRenaming of a program

VariableStateTransfer

VariablesProductLattice

VariantVector

VarsExprsProductLattice

VectorCmdOptions

VectorHash

VirtualFunctionAnalysis

Virutal Function Analysis and PointerAliasAnalysis are dependent on each other for their accuracy. That's why they are done together

VirtualGraphCreateTemplate

VoidPtrMap

VoidPtrSet

WriteContainer

Output interface of a container

X86_64PrimitiveTypeLayoutGenerator

Layout generator for x86‐64 primitive types

X86_64_VSPrimitiveTypeLayoutGenerator

Slight modification for Visual Studio ‐‐ long is 4 bytes, not 8

XformVar

affineInequalitiesPlacer

affineInequality

affineInequalityFact

* affineInequalityFact **

arrayElt

astDiagnostics

Description of AST Diagnostics within ROSE

ast_construction

AST construction

attributes

Working with attributes

backendGenerator

Backend C and C++ Code Generator

binary_analysis_mainpage

Binary analysis main page

binary_tutorial

Binary analysis tutorial

booleanQueryLib

Boolean Query Library

builtinFilter

A function object to filter out builtin functions in a call graph (only non‐builtin functions will be considered)

commit_messages

Writing Git commit messages

defaultConstructorDestructorDocumentationPage

Default constructors and destructors

deleteDFAnalysisState

developer_docs

Library developers and collaborators

dottable

dummyFilter

A function object to be used as a predicate to filter out functions in a call graph: it does not filter out anything.

file_pos_info

frontendSageHighLevelInterface

High level AST builders

funcSideEffectUses

genUID

generateDOTExtended

generateDOTExtended_withIncludes

generateDOTExtendedforMultipleFile

heap_object_ownership

Ownership of heap‐allocated objects

how_to_document

How to install Zlib * Instructions for installing Zlib, a ROSE software dependency. */ struct installation_dependencies_zlib {}; `

library_general_principles

Library general principles

localNodeQueryLib

Local Node Query Library

nameQueryLib

Name Query Library

nodeConstAnalysis

nodeConstLattice

nodeQueryLib

Node Query Library

numCallersAttribute

* numCallersAnnotator * Annotates every function's SgFunctionDefinition * node with a numCallersAttribute that contains the * number of functions that call the given function. ****

partSplit

partitionDFAnalysisState

placeUniqueIDs

printAnalysisStates

printDataflowInfoPass

** printDataflowInfoPass * Prints out the dataflow information associated * with a given analysis for every CFG node a * function. *****

printable

queryLib

Query Library

rose_backend

Backend

rose_frontend

Frontend

rose_mainpage

ROSE overview

rose_midend

Midend

stmt_pos

stream_element

subtreeQueryLib

Subtree Query Library

token_element

tooldev

Developing ROSE‐based tools

tooldev_makefile

Build systems

tooldev_page

Developing ROSE‐based tools

transformationSupportLib

Transformation Support Library

unionDFAnalysisStatePartitions

utilityClasses

General Utility Functions

varAffineInequality

varID

variable

wrap_data_used_by_AttachPreprocessingInfoTreeTrav_t

AST_NODE_ID

AstNodeList

AstNodePtrImpl

AstTypeList

AttachedPreprocessingInfoType

BaseGraphEdge

BaseGraphNode

BooleanQuerySynthesizedAttributeType

CompSliceDepGraph

CompSliceDepGraphNodeIterator

CompareRel

CopyArrayOpt

DDE

DeclarationPtrList

DepDirType

DepDirection

DepEDD

DepInfoConstIterator

DepInfoConstIteratorImpl

DepInfoEdgeIterator

DepInfoEdgeIteratorImpl

DepInfoSetEdgeIterator

DepInfoSetEdgeIteratorImpl

DepInfoUpdateIterator

DepInfoUpdateIteratorImpl

DepType

DomainCondConstIterator

DomainCondConstIteratorImpl

DomainCondUpdateIterator

DomainCondUpdateIteratorImpl

DummyAttribute

ExprHandle

Fct2Var

FormatOpt

GraphAccessInterface

LeafHandle

LexTokenStreamType

LexTokenStreamTypePointer

LoopTreeDepGraph

LoopTreeNodeIterator

LoopTreeNodeIteratorImpl

LoopTreeTransDepGraphCreate

MLOG_LEVEL_t

Mandatory logging are those critial msgs of the runtime including three levels of severity: MLOG_LEVEL_WARN: warning of likely problem, but the results might be ok MLOG_LEVEL_ERROR: error of runtime execution, program can continue, results will be wrong, but still useful MLOG_LEVEL_FATAL: fatal errors of runtime, program cannot continue.

MacroDirectiveMap

NameGroup

a set of names separated by ',', begin with '(', end with ')'

NameQuerySynthesizedAttributeType

NodeQuerySynthesizedAttributeType

NumberQuerySynthesizedAttributeType

OperatorAliasDescriptor

A container of std::list<> of elment of NameGroup type

OperatorCollectionBase

ParamDescriptor

Paramter names

ParamTypeDescriptor

Parameter types

PatternVariables

PrecedenceSpecifier

ProcHandle

ReachingDefinitions

ReadOperatorCollection

ReadTypeCollection

RestrictValueDescriptor

RoseTimeType

SliceCFGEdge

SliceCFGNode

SliceDominanceFrontier

SliceDominatorTree

StmtHandle

StmtLabel

SymHandle

SymOpType

SymbolicValType

TypeCollectionBase

Instance types for type annotations

_DummyAttribute

funcPointerT

kmp_sched_t

m_quad2bool

m_quad2map

m_quad2quad

m_quad2quadpair

m_quad2setPtr

m_quad2str

m_varID2bool

m_varID2quad

m_varID2setPtr

m_varID2str

m_varID2varID2quad

openanal_base_type

quad

quadlist

quadpair

replacement_map_t

utility functions to operate on the AST.

rose_addr_t

setQuad

stmt_pos_list

varIDSet

varIDlist

varIDpair

Enums

Name

Description

Unnamed enum

Unnamed enum

Unnamed enum

Unnamed enum

Unnamed enum

Unnamed enum

Unnamed enum

AssociativitySpecifier

Format_Opt

IRProcType

IRStmtType

MLOG_LEVEL

Mandatory logging are those critial msgs of the runtime including three levels of severity: MLOG_LEVEL_WARN: warning of likely problem, but the results might be ok MLOG_LEVEL_ERROR: error of runtime execution, program can continue, results will be wrong, but still useful MLOG_LEVEL_FATAL: fatal errors of runtime, program cannot continue.

OpType

SimdType

kmp_sched_t

tgt_map_type

Functions

Name

Description

AddConst

AnalyzeEquation

AnalyzeStmtRefs

ApplyBinOP

ApplyLoopSplitting

ApplyUnaryOP

ArrayReferences

AstPostProcessing

This does all post‐processing fixup and translation of the Sage III AST.

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

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

XOMP_atomic_end

XOMP_atomic_start

XOMP_barrier

XOMP_critical_end

XOMP_critical_start

XOMP_flush_all

XOMP_flush_one

XOMP_init

XOMP_loop_default

XOMP_loop_dynamic_init

XOMP_loop_dynamic_next

XOMP_loop_dynamic_start

XOMP_loop_end

XOMP_loop_end_nowait

XOMP_loop_guided_init

XOMP_loop_guided_next

XOMP_loop_guided_start

XOMP_loop_ordered_dynamic_init

XOMP_loop_ordered_dynamic_next

XOMP_loop_ordered_dynamic_start

XOMP_loop_ordered_guided_init

XOMP_loop_ordered_guided_next

XOMP_loop_ordered_guided_start

XOMP_loop_ordered_runtime_init

XOMP_loop_ordered_runtime_next

XOMP_loop_ordered_runtime_start

XOMP_loop_ordered_static_init

XOMP_loop_ordered_static_next

XOMP_loop_ordered_static_start

XOMP_loop_runtime_init

XOMP_loop_runtime_next

XOMP_loop_runtime_start

XOMP_loop_static_init

Optional init functions, mostly used for working with omni RTL

XOMP_loop_static_next

XOMP_loop_static_start

XOMP_master

XOMP_ordered_end

XOMP_ordered_start

XOMP_parallel_end

XOMP_parallel_start

XOMP_sections_end

XOMP_sections_end_nowait

XOMP_sections_init_next

XOMP_sections_next

XOMP_single

XOMP_static_even_divide

XOMP_task

XOMP_taskwait

XOMP_terminate

XOR

_ompc_atomic_lock

_ompc_atomic_unlock

_ompc_barrier

_ompc_copyin_thdprv

_ompc_default_sched

_ompc_do_parallel

_ompc_do_single

_ompc_dynamic_sched_init

_ompc_dynamic_sched_next

_ompc_enter_critical

_ompc_exit_critical

_ompc_flush

_ompc_get_thdprv

_ompc_guided_sched_init

_ompc_guided_sched_next

_ompc_init

_ompc_init_ordered

_ompc_is_last

_ompc_is_master

_ompc_reduction

_ompc_runtime_sched_init

_ompc_runtime_sched_next

_ompc_section_id

_ompc_section_init

_ompc_static_bsched

_ompc_static_sched_init

_ompc_static_sched_next

_ompc_terminate

addPredefinedVars

addPrototypesForTemplateInstantiations

Fixups transformations that have added template instantiations or caused template instantiations to be output so that there is a proper prototype declaration before the template instantation is called.

annotateNumCallers

attachPreprocessingInfo

backend

backendCompilesUsingOriginalInputFile

backendGeneratesSourceCodeButCompilesUsingOriginalInputFile

buildArtificialFrontier

buildSourceFileForHeaderFile

buildTokenStreamMapping

buildTokenStreamMappingForRoot

buildVariableList

changeAllMembersToPublic

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.

checkIsCompilerGeneratedFlag

Checks whether appropriate nodes of an AST are marked as compiler‐generated.

checkIsFrontendSpecificFlag

Checks whether appropriate nodes of an AST are marked as front‐end specific.

checkIsModifiedFlag

checkOpenACCIR

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.

clang_main

clang_to_dot_main

cleanupInlinedCode

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

closeLibHandle

computePreviousAndNextNodes

convertAffinityClause

convertAllocatorClause

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

convertNonBodyDirective

convertOmpAllocateDirective

convertOmpDeclareSimdDirective

convertOmpDeclareTargetDirective

convertOmpEndDeclareTargetDirective

convertOmpFlushDirective

convertOmpParallelStatementFromCombinedDirectives

convertOmpRequiresDirective

convertOmpTaskwaitDirective

convertOmpThreadprivateStatement

convertOpenACCBodyDirective

convertOpenACCClause

convertOpenACCDirective

convertOpenACCExpressionClause

convertOrderClause

convertProcBindClause

convertScheduleClause

convertSizesClause

convertToClause

convertUsesAllocatorsClause

convertVariantBodyDirective

convertVariantDirective

convertWhenClause

copy_backend

copy_mapped_variable

A helper function to copy a mapped variable from src to desc

debug_cfg

defaultFunctionGenerator

destructorCallAnnotator

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

edgePointerReplacement overloads

escapeString

escape_double_quotes

existsVariable

expressionTreeEqual

Are two expressions equal (using a deep comparison)?

expressionTreeEqualStar

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

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

findAndCallFunctionUsingDlopen

findBasicBlockForStmt

findFollowingPositions

findFunctionUsingDlopen

findIfStmtForSC

findInitializedNamesInScope

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.

fixupAstDeclarationScope

Fixup all SgDeclarationStatement to have a consistant scope (between the defining and all non‐defining declarations).

fixupAstDefiningAndNondefiningDeclarations

Fixup all SgDeclarationStatement references to defining and non‐defining declarations.

fixupAstSymbolTables

Fixup global and local symbol tables.

fixupAstSymbolTablesToSupportAliasedSymbols

Fixup C++ symbol tables to use aliasing symbols for using declarations.

fixupDeclarations

Fixup definingDeclaration and firstNondefiningDeclaration pointers in SgDeclarationStatement.

fixupEnumValues

fixupFileInfoInconsistanties

Checks and fixes up inconsistanties in the settings of Sg_File_Info flags (e.g. isTransformation flag) in the Sg_File_Info object

fixupFortranReferences

Fixup Fortran array vs. function references.

fixupFortranUseDeclarations

Fixup Fortran Use declarations.

fixupFriendDeclarations

fixupFriendTemplateDeclarations

fixupFunctionDefaultArguments

fixupFunctionDefinitions

fixupGlobalFunctionSymbolTable

Fixup the names used build the global function symbol table.

fixupInClassDataInitialization

fixupInitializersUsingIncludeFiles

fixupNullPointersInAST

Fixup specific pointers in the AST that we would like to not have be NULL.

fixupPrettyFunctionVariables

fixupSelfReferentialMacrosInAST

Fixup known macros that reference themselves and cause recursive macro expansion in the generated (unparsed) code.

fixupSourcePositionConstructs

fixupSourcePositionInformation

fixupStorageAccessOfForwardTemplateDeclarations

Fixup the storage access of all compiler‐generated forward declarations (non‐defining declarations) to match that of the defining declaration.

fixupTemplateArguments

fixupTemplateDeclarations

fixupTemplateInstantiations

Fixups template specializations generated by ROSE from template instantiations.

fixupTypeReferences

fixupforGnuBackendCompiler

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.

frontend

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

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

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

get_type_name

returns the name of type t

graphNodesAfterCopy

hasAddressTaken

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

initAnalysis

initializeExplicitScopeSupport

Initialize explicit scopes (support function should not be called).

initializeExplicitScopes

Initialize explicit scopes (located only at specific IR nodes).

insertFortranContainsStatement

Insert Fortran "CONTAINS" statement.

intermediateRepresentationNodeGraph

isFortranPairedDirective

isMemberVariable

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

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

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.

markAsCompilerGenerated

Mark an AST subtree as compiler generated (used for instatiated templates generated by ROSE as specializations).

markBackendSpecificFunctionsAsCompilerGenerated

Mark an backend specific functions as compiler generated.

markForOutputInCodeGeneration

Mark an AST subtree as compiler generated and to be output in the source file (code generation phase).

markLhsValues

Mark relavant expressions as l‐values explicitly.

markOverloadedTemplateInstantiations

Mark any template instatiations that are overloaded (we can't output these since g++ can't resolve them).

markSharedDeclarationsForOutputInCodeGeneration

Mark an AST subtree to be unparsed using an alternative file (for multi‐file unparsing).

markTemplateInstantiationsForOutput

Fixups template instantiations generated by ROSE from template declarations.

markTemplateSpecializationsForOutput

markTransformationsForOutput

Fixups transformations (which are often marked at a high level and need to be marked properly through their subtree).

mlogAssertFail_C

mlogLevelToString_CXX

mlogMore_C

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

normalizeTypedefSequenceLists

omp_exprparser_parse

omp_exprparser_parser_init

omp_get_wtick

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

outputFirstAndLastIncludeFileInfo

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

parseOpenACC

parseOpenMP

parseOpenMPFortran

patact

Create a PatternActionRule

pcloseFromVector

peek_ch

peek_id

peek_next

popenReadFromVector

postProcessingSupport

Postprocessing that is not likely to be handled in the legacy frontend/Sage III translation.

printAffineInequalities

printConstrGraphAnalysisStates

printDivAnalysisStates

printDominatorAnalysisStates

printLiveDeadVarsAnalysisStates

printNodeConstAnalysisStates

printSeqStructAnalysisStates

printSgnAnalysisStates

processTemplateHandlingOptions

Fixup template instantiations to unmark them for output followingsemantics of gnu template options

propagateHiddenListData

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

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

queryIsImportantForSliceType

queryIsImportantForSliceTypeWithCalls

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.

removeEmptyElses

removeInitializedNamePtr

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

resetConstantFoldedValues

This function acts in two different ways

resetContructorInitilizerLists

resetFileInfoParentPointersInMemoryPool

This traversal calls ResetFileInfoParentPointersInMemoryPool Memory Pool traversal.

resetNamesInAST

resetParentPointers

Interface function to reset parent pointers.

resetParentPointersInMemoryPool

This traversal calles ResetParentPointersInMemoryPool Memory Pool traversal.

resetParentPointersOfClassOrNamespaceDeclarations

This is a top level function not called recursively.

resetSourcePositionToGeneratedCode

resetTemplateNames

Sets names of template classes (calls custom traversal).

resetTypesInAST

resolveLogicalBinaryOpType

resolveRoseClangPaths

resolveRosePaths

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

rose_dynamic_library_exists

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

systemFromVector

testAstForUniqueNodes

testForCycleInTemplateArgumentsOfTemplateDeclaration

toStringForRTI

topLevelResetParentPointer

This is a top level function not called recursively.

trimSpaces

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

unescapeString

unparseDeclarationToString

Unparse the declaration as a string for use in prototypes within the AST rewrite mechanism prefix mechanism

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.

unparseScopeStatementWithoutBasicBlockToString

Unparse the header of the scope statement (used in the prefix generation to permit context to be accounted for the in generation of AST fragements from strings, e.g. for cases in SgSwitchStatement).

unparseStatementWithoutBasicBlockToString

Unparse header of statements that have bodies (but are not scopes) (e.g. SgDefaultOptionStmt)

unparse_alignas

unparse_register_name

unsetNodesMarkedAsModified

version_message

version_number

writeList

write_graph

write_graph2

write_graph_node_edge

xomp_acc_init

xomp_beyond_block_reduction_double

xomp_beyond_block_reduction_float

xomp_beyond_block_reduction_int

xomp_deviceDataEnvironmentAddVariable

xomp_deviceDataEnvironmentEnter

xomp_deviceDataEnvironmentExit

xomp_deviceDataEnvironmentGetInheritedVariable

xomp_deviceDataEnvironmentPrepareVariable

xomp_deviceMalloc

xomp_freeArrayPointer

xomp_freeDevice

xomp_freeHost

xomp_get_max1DBlock

xomp_get_maxSegmentsPerDimensionOf2DBlock

xomp_get_maxThreadsPerBlock

xomp_get_max_devices

xomp_get_max_threads_per_dimesion_2D

xomp_get_num_devices

xomp_hostMalloc

xomp_init

xomp_mallocArray

xomp_memcpyDeviceToDevice

xomp_memcpyDeviceToHost

xomp_memcpyDynamicDeviceToHost

xomp_memcpyDynamicHostToDevice

xomp_memcpyHostToDevice

xomp_memcpyHostToHost

xomp_set_default_device

xomp_time_stamp

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

AST_Graph namespace

Types

Name

Description

DataMemberPointersToIR

* The class class DataMemberPointersToIR implements two different ways of constructing a graph from the AST. * The memory pool traversal which is why the class inherits fromROSE_VisitTraversal * Whole AST traversal through traversing on nodes This design decision is peculiar out from a inheritance perspective, butmakes sence to bridge between the iheritance style of Marcus and an STLalgorithm style. Caveats: * one member functions is only used by the memory pool traversal ‐visit(..) The member function generateGraphFromMemoryPool(..) is required toachieve STL style algorithms where the bace‐class uses implemenatation byvirtual functions. Great things: * avoid duplicate implementation * allows a very simple implementation******

defaultFilterBinary

* The functional struct defaultFilterBinary is an example filter on edges.

defaultFilterUnary

* The functional struct defaultFilterUnary is an example filter on nodes.

filterSgFileInfo

filterSgFileInfoAndGnuCompatabilityNode

my_pair

* Define custom return type from the filter functionals. This is an experiment to see if a std::pair like data structure where the variables names are not std::pair<>::first and std::pair<>::second. This data structure is expectedto change as the code develops.*

nodePartOfGraph

FunctionalReturnType

NodeType

NodeTypeVector

Functions

Name

Description

writeGraphOfAstSubGraphToFile

writeGraphOfAstSubGraphToFile overloads

writeGraphOfMemoryPoolToFile

writeGraphOfMemoryPoolToFile overloads

operator==

Two my_pairs of the same type are equal iff their members are equal.

operator!=

Uses operator== to find the result.

operator<

<http://gcc.gnu.org/onlinedocs/libstdc++/20_util/howto.html#my_pairlt>

operator<=

Uses operator< to find the result.

operator>

Uses operator< to find the result.

operator>=

Uses operator< to find the result.

ASTtools namespace

Types

Name

Description

PrePostTraversal

JumpMap_t

Store a list of non‐local "jumps" (continues, breaks) and ids.

ThisExprSet_t

Stores a list of 'this' expressions.

VarSymSet_t

Stores a collection of SgVariableSymbols (var syms).

Functions

Name

Description

appendCopy

Append a deep‐copy of statement s onto the basic block b.

appendStmtsCopy

Append a deep‐copy of statements from a to the basic block b.

attachComment

Attaches a string as a new C++‐style comment to the given statement.

collectDefdVarSyms

Collect var syms for all local variable declarations at 's'.

collectLocalVisibleVarSyms

Collect var syms declared at 'root' or below that are visible to 'target'.

collectNonLocalGotos

Collect non‐local "goto" statements.

collectNonLocalJumps

Collect non‐local "jumps" within a statement.

collectPointerDereferencingVarSyms

Collect variables suitable for using pointer dereferencing

collectRefdVarSyms

Collect var syms for all variable references at 's'.

collectThisExpressions

Collect 'this' expressions.

collectVarRefsOfTypeWithoutAssignmentSupport

Collect variable references with a type which does not support =operator or copy construction. Those two support is essential for temp variables used to copy and restore parameters

collectVarRefsUsingAddress

Collect variable references using addresses for s

createInfoList

Returns the preprocessing information list attached to the given statement; if no preprocessing information exists, then this routine will create an empty list and return its pointer. Thus, this routine is guaranteed to return a non‐NULL result.

cutPreprocInfo

Removes all preprocessing information at a given position.

deepCopy

Create a deep‐copy of an SgNode

dumpPreprocInfo

Dumps a statement's preprocessing information.

dumpSymTab

Dump a symbol table.

findFirstFuncDef

Search for the first surrounding function definition.

findFirstFuncDefScope

Search for the first surrounding scope that may contain a function def.

getClassName

Returns the name of the class of a member function.

getMemFuncName

Returns the unqualified name of the member function.

getNumArgs

Returns the number of function arguments, including 'this' for member functions.

getUnqualUntmplName

Returns a non‐templated, unqualified name.

insertHeader

Inserts an '#include' of a header file at the first statement.

isC99

Returns 'true' if this node is contained in a C99‐only project.

isConstMemFunc

Returns 'true' if the specific function is a 'const' member function.

isConstObj

Returns 'true' if the specified type is a 'const' object.

isCtor

Returns true if 'func' is a constructor.

isDtor

Returns true if 'func' is a destructor.

isExternC

Returns 'true' iff the given function is declared 'extern "C"'.

isFuncName

Returns true iff the function's unqualified name equals the target name.

isFuncNamePrefix

Returns true iff the function's unqualified name begins with the target prefix.

isIfCond

Returns 'true' <==> 's' is the condition of some 'if' statement.

isIfDirectiveBegin

Returns true if the info is an '#if', '#ifdef', or '#ifndef'.

isIfDirectiveEnd

isIfDirectiveMiddle

Returns true if the info is an '#elif' or '#else'.

isMain

Returns 'true' if the function is 'main'.

isPositionAfter

Returns true if info is positioned after its statement.

isPositionBefore

Returns true if info is positioned before its statement.

isPositionInside

Returns true if info is positioned inside its statement.

isStaticFunc

Returns true iff the given function declaration is 'static'.

isStdNamespace

Returns 'true' if the scope is the '::std' namespace.

isSwitchCond

Returns 'true' <==> 's' is the conditional selector of some 'switch' statement.

isTemplateInst

isTemplateInst overloads

isWhileCond

Returns 'true' <==> 's' is the condition of some 'while' or 'do ... while' statement.

moveAfterPreprocInfo

Moves 'after' preprocessing information.

moveBeforePreprocInfo

Moves 'before' preprocessing information.

moveInsidePreprocInfo

Moves 'inside' preprocessing information.

moveStatements

Move statements from one basic‐block to another.

moveUpPreprocInfo

Moves preprocessingInfo of stmt2 to stmt1.

newFileInfo

Returns a newly allocated file info object for transformation nodes.

pastePreprocInfoBack

Pastes preprocessing information at the back of a statement.

pastePreprocInfoFront

Pastes preprocessing information at the front of a statement.

replaceStatement

Replaces one statement with another.

setSourcePositionAsTransformation

Reset source position as transformation for the current node only

setSourcePositionAtRootAndAllChildrenAsTransformation

Reset source position as transformation recursively

toString

Convert a variable symbol set to a string‐friendly form for debugging.

toStringFileLoc

Convert a node's location to a string‐friendly form.

transformToBlockShell

Create an SgBasicBlock shell around an existing SgBasicBlock.

AstQueryNamespace namespace

Inherited attribute for AstQuery class.

Types

Name

Description

AstQuery

* The class class AstQuery traverses the memory pool and performs the action specified in a functional on every node. The return value is a list of SgNode*.*****

AstQueryInheritedAttributeType

AstQuery_DUMMY

DefaultNodeFunctional

Simplifies development of queries on the AST that return lists of AST nodes.

helpF

helpFunctionalOneParamater

helpFunctionalTwoParamaters

Enums

Name

QueryDepth

Functions

Name

Description

Merge

queryMemoryPool

queryMemoryPool overloads

queryRange

queryRange overloads

querySubTree

querySubTree overloads

AstUtilInterface namespace

Enums

Functions

Name

Description

AddOperatorSideEffectAnnotation

CollectSideEffectVariables

Collect non‐local variables that are read and written within the given ast. This is a wrapper of the ComputeAstSideEffects function to provide a more convenient user interface. Returns true if the returned variables are guaranteed to be complete; returns false otherwise.

ComputeAstSideEffects

Returns the collection of memory references modified, read, and invoked (as function calls) as potential side effects of running the given ast, inside the given scope.

GetVariableSignature

Returns a string that uniquely identifies the given variable. If provided with a dict_table, save the file name and line number for the signature.

IsLocalRef

OperatorSideEffectName

OutputOperatorSideEffectAnnotations

OutputSignatureDictionary

ReadAnnotations

RegisterOperatorSideEffectAnnotation

SetFunctionNameMangling

SetSaveVariableDictionary

operator<<

Stream insertion operator

CLANG_ROSE_Graph namespace

Variables

Name

file

CPreproc namespace

Types

Name

Description

If

Stores a preprocessor '#if' directive and nested directives.

IfDirectiveContextFinder

Find the '#if' case surrounding a given node.

IfDirectiveExtractor

Traversal to extract '#if' directives.

Ifs_t

Stores lists of directives.

Functions

Name

Description

dump

dump overloads

extractIfDirectives

Extracts the '#if' directive structure from a project.

findIfDirectiveContext

Locate the '#if' directive context at a node.

CallTargetSet namespace

Functions

Name

Description

getDeclarationsForExpression

Populates functionList with declarations of all functions that may get called. This is basically a wrapper around getPropertiesForExpression.

getDefinitionsForExpression

Populates functionList with definitions of all functions that may get called. This is basically a wrapper around getPropertiesForExpression that extracts the SgFunctionDefinition from the Properties object. This returns only callees that have definitions ‐ to get all possible callees, use getDeclarationsForExpression

getExpressionsForDefinition

getFirstVirtualFunctionDefinitionFromAncestors

getPropertiesForExpression

solveConstructorInitializer

Returns the list of all constructors that may get called via an initialization.

solveFunctionPointerCall

Finds all functions that match the function type of pointerDerefExp

solveFunctionPointerCallsFunctional

Checks if the functionDeclaration (node) matches functionType

solveMemberFunctionCall

solveMemberFunctionPointerCall

CommandlineProcessing namespace

Command line processing utility functions. Functions in this namespace are in the ROSE Utilities library and

Types

Name

Description

ArgvStorage

RAII storage for argv‐style arguments without heap allocation.

Functions

Name

Description

addCppSourceFileSuffix

Add another valid source file suffix.

addListToCommandLine

Add the strings in argList to the command line.

deleteArgcArgv

Release argv allocated by generateArgcArgvFromList.

generateArgListFromArgcArgv

Convert an argc‐argv pair into a string vector.

generateArgListFromString

Separate a string into individual parameters.

generateArgcArgvFromList

Convert a string vector back to an argc‐argv pair.

generateOptionList

Looks for inputPrefix prefixed options.

generateOptionListWithDeclaredParameters

Looks for inputPrefix‐prefixed options.

generateOptionWithNameParameterList

Find all options matching the given prefix.

generateSourceFilenames

Build the list of isolated file names from the command line.

generateStringFromArgList

Build a string from the argList.

initExecutableFileSuffixList

initObjectFileSuffixList

initSourceFileSuffixList

isCFileNameSuffix

isCoArrayFortranFileNameSuffix

isCppFileNameSuffix

isCudaFileNameSuffix

isExecutableFilename

isFortran2003FileNameSuffix

isFortran2008FileNameSuffix

isFortran77FileNameSuffix

isFortran90FileNameSuffix

isFortran95FileNameSuffix

isFortranFileNameSuffix

isFortranFileNameSuffixRequiringCPP

isObjectFilename

isOpenCLFileNameSuffix

isOption

Search 'argv' for an option like optionPrefixOption.

isOptionTakingSecondParameter

isOptionTakingThirdParameter

isOptionWithParameter

isOptionWithParameter overloads

isSourceFilename

isValidFileWithExecutableFileSuffix

removeAllFileNamesExcept

Remove file names specified in filenameList from argv.

removeArgs

Remove all options matching a specified prefix.

removeArgsWithParameters

Remove all options matching a specified prefix along with their values.

ConstantFolding namespace

Functions

Name

Description

buildResultValueExp_float_t

buildResultValueExp_t

buildResultValueExp_u_t

calculate_float_t

Calculate the result of a binary operation on two constant float‐kind values,

calculate_string_t

string type and binary operator: the allowed operations on string values

calculate_t

calculate_u_t

cf_get_value_t

constantFoldingOptimization

This is the external interface of constant folding:

constantUnFoldingTest

returnConstantFoldedValueExpression

Dbg namespace

Types

Functions

Name

Description

addDOT

addDOTStr

addImage

dotGraphGenerator

Generate dot graphs for an analysis: it handles intra‐procedural analysis for now.

enterFunc

escape

exitFunc

init

Variables

DominatorTreesAndDominanceFrontiers namespace

Types

Name

Description

ControlFlowGraph

This class constructs a control flow graph for a given function definition. It builds off of information provided by CFGImpl.h, and adds some additional bookkeeping information (such as entry and exit points, as well as having a separate node for each statement in the graph).

ControlNode

This class is a node in the CFG. It can either be an SgNode or it can be a special entry or exit node (since there are some empty blocks in the CFG).

DefaultBasicDominatorTreeIsStatementFilter

DominatorForwardBackwardWrapperClass

This class provides a uniform view of the CFG dissregarding the direction of the CFG‐traversal (forward/backward)

TemplatedDominanceFrontier

TemplatedDominatorTree

TemplatedDominatorTree constructs a dominator/postdominator tree for a cfg. For the template parameter any cfg following Jeremias interface may be used

Direction

DominatorTree

STD‐Dominator‐Tree

Enums

Name

Dir_ection

IncludeFileGraph namespace

Variables

Inliner namespace

Variables

IntegerOps namespace

Bit‐wise operations on integers.

Types

Name

Description

GenMask

Bit mask constant with bits 0 through n‐1 set.

SHL1

Bitmask constant with bit n set. Handles the case where n is greater than the width of type T.

Functions

Name

Description

bitmask_subset

Determines if one bitmask is a subset of another. Returns true if the bits set in the first argument form a subset of the bits set in the second argument.

countClear

Counts how many bits are clear (zero).

countSet

Counts how many bits are set (one).

extract

Extract bits from a value. Bits lobit through hibit, inclusive, are right shifted into the result and higher‐order bits of the result are cleared.

extract2

genMask

genMask overloads

isPowerOfTwo

Returns true if the value is a power of two. Zero is considered a power of two.

log2

log2max

Returns the base‐2 logorithm of value. If value is not a power of two then the return value is rounded up to the next integer. The value is treated as an unsigned value. Returns zero if value is zero.

msb_set

Optionally returns the zero‐origin position of the most significant set bit. Returns nothing if no bits are set.

rotateLeft

Rotate the bits of the value left by count bits.

rotateLeft2

rotateRight

Rotate bits of the value right by count bits.

rotateRight2

shiftLeft

Shifts bits of value left by count bits.

shiftLeft2

shiftRightArithmetic

Shifts bits of value right by count bits with sign extension.

shiftRightArithmetic2

shiftRightLogical

Shifts bits of value right by count bits without sign extension.

shiftRightLogical2

shift_to

Create a shifted value. The return value is created by shifting value to the specified position in the result. Other bits of the return value are clear. The hibit is specified so that we can check at run‐time that a valid value was specified (i.e., the value isn't too wide).

shift_to2

shl1

Bitmask with bit n set. Handles the case where n is greater than the width of type T.

signBit

Returns true if the sign bit is set, false if clear.

signBit2

signExtend

Sign extend value. If the bit FromBits‐1 is set set for value, then the result will have bits FromBits through ToBits‐1 also set (other bits are unchanged). If ToBits is less than or equal to FromBits then nothing happens.

signExtend2

OmpSupport namespace

Types and functions to support OpenMP

Types

Name

Description

ComplexClause

SgVarRefExpVisitor

translationDriver

A driver to traverse AST trees and invoke individual translators for OpenMP constructs, (not in use) Postorder is preferred.

VariableSymbolMap_t

Enums

Name

Description

omp_construct_enum

omp_rtl_enum

The type of target runtime libraries (not yet in use)

Functions

Name

Description

addClauseVariable

Add a variable into a non‐reduction clause of an OpenMP statement, create the clause transparently if it does not exist

addOmpClause

Attach an OpenMP clause to directive

analyze_omp

buildAndInsertDeclarationForOmp

Special handling when trying to build and insert a variable declaration into a BB within Fortran OpenMP code

buildOmpVariableClause

Build a non‐reduction variable clause for a given OpenMP directive. It directly returns the clause if the clause already exists

categorizeMapClauseVariables

Categorize mapped variables

collectAllClauseVariables

Collect all variables from OpenMP clauses associated with an omp statement: private, reduction, etc

collectClauseVariables

collectClauseVariables overloads

collectThreadprivateVariables

Collect threadprivate variables within the current project, return a set to avoid duplicated elements. No input parameters are needed since it finds match from memory pools

commandLineProcessing

createInitialValueExp

Create an initial value according to reduction operator type

createOmpStatementTree

Analysis helpers

extractMapClauses

Extract map clause information

generateGOMPLoopNextFuncName

Generate GOMP loop schedule next function's name

generateGOMPLoopStartFuncName

Generate GOMP loop schedule start function's name

generateOutlinedTask

A helper function to generate implicit or explicit task for either omp parallel or omp task

getClause

Get OpenMP clauses from an eligible OpenMP statement

getClauseExpression

Collect expression from given types of OpenMP clauses associated with an omp statement: private, reduction, etc

getDataSharingAttribute

getDataSharingAttribute overloads

getEnclosingRegionOrFuncDefinition

Find an enclosing parallel region or function definition's body

getOmpParent

getReductionOperationType

Return a reduction variable's reduction operation type

hasClause

Check if an OpenMP statement has a clause of type vt

insertAcceleratorInit

insertRTLHeaders

Insert #include "xxx.h", the interface of a runtime library to the compiler

insertRTLinitAndCleanCode

Insert runtime init and terminate routines to main() entry

isClause

Check if an OpenMP construct is a clause

isDependenceType

Check if an OpenMP construct is a dependence type for omp task depend

isDirective

Check if an OpenMP construct is a directive

isDirectiveWithBody

Check if an OpenMP directive has a structured body

isFortranBeginDirective

Check if the construct is a Fortran directive which can (optionally) have a corresponding END directive

isFortranEndDirective

Check if the construct is a Fortran END ... directive

isInClauseVariableList

isInClauseVariableList overloads

isInOmpTargetRegion

Check whether a SgNode is inside omp target

isReductionOperator

Check if an OpenMP construct is a reduction operator

isSharedAccess

Check if a variable access is a shared access , assuming it is already within an OpenMP region.

isThreadprivate

Check if a variable is a threadprivate variable. It will search for all threadprivate directives to find the answer.

lower_omp

The top level interface to translate OpenMP directives

makeDataSharingExplicit

mergeSgNodeList

patchUpFirstprivateVariables

Patch up firstprivate variables for omp task. The reason is that the specification 3.0 defines rules for implicitly determined data‐sharing attributes and this function will make the firstprivate variable of omp task explicit.

patchUpPrivateVariables

patchUpPrivateVariables overloads

patchUpSharedVariables

makeDataSharingExplicit() can call some of existing functions for some work in OmpSupport namespace by Hongyi 07/16/2012 TODO: add a function within the OmpSupport namespace, the function should transform the AST, so all variables' data‐sharing attributes are explicitied represented in the AST. ROSE has dedicated AST nodes for OpenMP directives and the associated clauses, such as private, shared, reduction.

processOpenMP

removeClause

Remove one or more clauses of type vt

replaceVariableReferences

replaceVariableReferences overloads

replaceVariablesWithPointerDereference

Replace all variable references in a set by pointers to the variable

setOmpRelationship

toString

toString overloads

transOmpAtomic

Translate omp atomic

transOmpBarrier

Translate omp barrier

transOmpCollapse

transOmpCritical

Translate omp critical

transOmpFlush

Translate omp flush

transOmpLoop

Translate omp for or omp do loops

transOmpMaster

Translate omp master

transOmpMetadirective

Translate omp metadirective

transOmpOrdered

Translate the ordered directive (not the ordered clause)

transOmpParallel

Translate omp parallel

transOmpSections

Translate omp sections

transOmpSimd

Translate omp simd

transOmpSingle

Translate omp single

transOmpTarget

Translate "omp target"

transOmpTargetData

Translate "omp target data"

transOmpTargetLoop

Translate omp for or omp do loops affected by the "omp target" directive, using naive 1‐to‐1 mapping Liao 1/28/2013

transOmpTargetLoop_RoundRobin

Translate omp for or omp do loops affected by the "omp target" directive, using a round robin‐scheduler Liao 7/10/2014

transOmpTargetParallel

Translate omp parallel under "omp target"

transOmpTask

Translate omp task

transOmpTaskwait

Translate omp taskwait

transOmpThreadprivate

Translate omp threadprivate

transOmpTile

Translate omp tile

transOmpUnroll

Translate omp unroll

transOmpVariables

Translate OpenMP variables associated with an OpenMP pragma, such as private, firstprivate, lastprivate, reduction, etc. bb1 is the translation generated code block in which the variable handling statements will be inserted. Original loop upper bound is needed for implementing lastprivate (check if it is the last iteration). withinAcceleratorModel means if we only translate private() variables, used to support accelerator model

useStaticSchedule

Check if an omp for/do loop use static schedule or not, including: default schedule, or schedule(static[,chunk_size])

OpenAnalysis namespace

Types

Name

Description

BaseGraph

BaseGraph is the abstract base class (the "interface") for a general graph. It defines graph properties common to directed and undirected graphs. It leaves out some loose ends in the interface: 1. A node has no notion of incident edges or neighboring nodes because the number of kinds of incident edges or neighboring nodes is dependent upon the graph being directed or undirected. 2. For the same reason, the method delete(node) cannot delete any incident edges. Therefore the directed or undirected graph must override it with a more complete version. Similarly, the method delete(edge) cannot delete the edge from the list(s) of the nodes involved. 3. In an analogous manner, the method add(edge) must be overridden with a more complete version that adds the edge into the records of the nodes involved, if needed.

CFG

CFG is a DGraph (directed graph) with enhanced nodes and edges. Each node in the CFG points to a list of statements that together represent a basic block. The entire program would be represented by a set of CFGs, one for each subroutine, and one for the main program.

DGraph

DGraph is the base class for a general directed graph (DGraph) that is in turn derived from BaseGraph. Algorithms that operate upon abstract directed graphs should, normally, use only this base DGraph class for maximum portability.

EdgeInfo

Exception

Exception is the abstract base class for all exceptions that can be thrown by Mint programs.

IRCallsiteIterator

IRCallsiteParamIterator

IRInterface

IRProcIterator

IRStmtIterator

IRUseDefIterator

Iterator

The Iterator abstract base class defines the basic properties of an iterator.

ROSE_CFG_Wrap

SageIRCallsiteParamIterator

SageIRInterface

SageIRStmtIterator

SageIRUseDefIterator

Worklist

ExprHandle

LeafHandle

ProcHandle

StmtHandle

StmtLabel

SymHandle

openanal_base_type

Enums

Using Declarations

Name

ostream

Outliner namespace

Namespaces

Name

Preprocess

Types

Name

Description

Result

Stores the main results of an outlining transformation.

Functions

Name

Description

appendIndividualFunctionCallArgs

Generates a function call parameter list using a set of symbols

collectVars

Computes the set of variables in 's' that need to be passed to the outlined routine (semantically equivalent to shared variables in OpenMP)

commandLineProcessing

Accept a set of command line options to adjust internal behaviors

generateCall

Generates a call to an outlined function.

generateFuncArgName

Create a unique outlined‐function's wrapper argument name for the specified statement.

generateFuncName

Create a unique outlined‐function name for the specified statement.

generateFunction

generateLibSourceFileName

the lib source file's name convention is rose_input_lib.[c|cxx].

generateNewSourceFile

Generate a new source file under the same SgProject as target, the file's base name is file_name_str. Suffix is automatically generated according to the file suffix of s

generatePackingStatements

Generate packing (wrapping) statements for the variables to be passed

generateParameterStructureDeclaration

Generate a struct declaration to wrap all variables to be passed to the outlined function There are two ways to wrap a variable: Using its value vs. Using its address (pointer type)

getLibSourceFile

Obtain the file handle to the separated source file storing outlined functions. This file will be compiled to .so dynamically loadable library. target is the input code block for outlining. It provides SgProject and input file name info. the lib source file's name convention is rose_input_lib.[c|cxx].

insert

isFortranModuleDefinitionScope

isOutlineable

Returns true iff the statement is "outlineable."

isValidOutliningScope

outline

outline overloads

outlineAll

Outlines all regions marked by outlining pragmas.

outlineBlock

Outlines the given basic block into a function named 'name'.

preprocess

preprocessAll

validateSettings

Validate and adjust analysis settings.

Outliner::Preprocess namespace

Functions

Name

Description

checkAndPatchUpOptions

Sanity check and patch up outliner options

createBlock

Convert the "plain‐old" statement into an SgBasicBlock. This normalization simplifies outlining of single statements.

gatherNonLocalDecls

Gathers non‐local declarations into the local scope.

normalizeVarDecl

Normalizes outline targets that are variable declarations, returning a new SgBasicBlock to outline.

preprocessOutlineTarget

Preprocesses the outline target and returns an equivalent SgBasicBlock to outline.

propagateStaticConstMembers

Constant propagation for static member variables

transformNonLocalControlFlow

Preprocess non‐local control flow for outlining.

transformPreprocIfs

Transform '#if' directive structure. It is possible that certain preprocessor directives may straddle the boundaries of a basic block. This routine attempts to detect and transform these instances so that the block may be safely outlined.

transformThisExprs

Canonicalize references to 'this'.

POET namespace

Types

ProcessExpression namespace

Functions

Name

Description

processLHS

Helper Function to process Left Hand Side of an Expression

processRHS

Helper Function to process Right Hand Side of an Expression

ROSE_Analysis namespace

Functions

Name

BuildCFG

ROSE_Statistics namespace

This is a mechanism for reporting statistical data about the AST, subtrees, and IR nodes.

Rose namespace

Namespaces

Name

Description

BitOps

Bit operations on unsigned integers.

Builder

Cmdline

FileSystem

Functions for operating on files in a filesystem.

Frontend

KeepGoing

MemPool

StringUtility

Functions for operating on strings.

Unique

Types

Name

Description

Logger

A nested logging mechanism to facilitate debbuging of tree traversal.

Options

PluginAction

Registry

A global registry used in conjunction with static constructors to make pluggable components (like targets or garbage collectors) "just work" when linked with an executable.

Registry<PluginAction>

RegistryTraits

Traits for registry entries. If using other than SimpleRegistryEntry, it is necessary to define an alternate traits class.

RegistryTraits<PluginAction>

SimpleRegistryEntry

A simple registry entry which provides only a name, description, and no‐argument constructor.

iterator_range

A range adaptor for a pair of iterators.

MemoryPoolTraversalFilter

PluginRegistry

Rose::BitOps namespace

Bit operations on unsigned integers.

Functions

Name

Description

all

Generate a value with all bits set or cleared.

allLsb

Set or clear the low‐order bits.

bit

Extract a single bit.

bitLsb

Extract a single bit.

bits

Extract part of a value.

bitsLsb

Extract part of a value limited by width.

convert

Extend or truncate a value.

convertSigned

Sign extend or truncate a value.

highMask

Generate a value with high order bits set.

lowMask

Generate a value with low order bits set.

mask

Generate a mask.

maskLsb

Generate a mask without affecting other bits.

msb

Most significant bit.

msbLsb

Most significant bit within lsb region.

nBits

Number of bits in a type or value.

nSet

position

Generate a single‐bit mask.

positionLsb

Generate a single‐bit mask without affecting the high‐order bits.

replicate

Replicate low‐order bits to fill return value.

replicateLsb

Replicate low‐order bits to fill region without affecting other bits.

rotateLeft

Rotate bits left.

rotateLeftLsb

Rotate low‐order bits left without affecting others.

rotateRight

Rotate bits right.

rotateRightLsb

Rotate low‐order bits right without affecting others.

select

Combine two values based on a bit mask.

shiftLeft

Left shift a value.

shiftLeftLsb

Left shift part of a value without affecting the rest.

shiftRight

Right shift a value.

shiftRightLsb

Right shift part of a value without affecting the rest.

shiftRightSigned

shiftRightSigned overloads

signExtend

Sign extend part of a value to the full width of the src type.

signExtendLsb

Sign extend part of value without affecting other bits.

Rose::Builder namespace

Namespaces

Name

Templates

Rose::Cmdline namespace

Namespaces

Enums

Name

Description

Unnamed enum

Constants to be used with CommandlineProcessing::isOptionWithParameter to specify the removeOption argument.

Functions

Name

Description

NormalizeIncludePathOptions

Convert ‐I <path> to ‐I<path>

ProcessKeepGoing

StripRoseOptions

Removes "‐rose:" options, or transforms them into their associated compiler options.

makeSysIncludeList

Variables

Name

verbose

Rose::Cmdline::Fortran namespace

Namespaces

Name

Description

Ofp

Targeted for src/frontend/OpenFortranParser_SAGE_Connection/jserver.C,

Functions

Name

Description

OptionRequiresArgument

Process

Process all Fortran commandline options.

ProcessFortranOnly

StripRoseOptions

Rose::Cmdline::Fortran::Ofp namespace

Targeted for src/frontend/OpenFortranParser_SAGE_Connection/jserver.C,

Functions

Name

Description

GetRoseClasspath

Process

ProcessClasspath

‐rose:fortran:ofp:classpath

ProcessEnableRemoteDebugging

‐rose:fortran:ofp:enable_remote_debugging Enable remote debugging of the OFP JVM.

ProcessJvmOptions

‐rose:fortran:ofp:jvm_options

StripRoseOptions

Rose::Cmdline::Unparser namespace

Functions

Name

Description

OptionRequiresArgument

Process

Process all Unparser‐specific commandline options, i.e. ‐rose:unparser.

ProcessClobberInputFile

StripRoseOptions

Rose::FileSystem namespace

Functions for operating on files in a filesystem.

Types

Name

Description

baseNameMatches

Predicate returning true for matching names.

DirectoryIterator

Iterate over directory contents non‐recursively.

Path

Name of entities in a filesystem.

RecursiveDirectoryIterator

Iterate recursively into subdirectories.

Functions

Name

Description

copyFile

Copy a file.

copyFiles

Copy files from one directory to another.

copyFilesRecursively

Recursively copy files.

createTemporaryDirectory

Create a temporary directory.

findNames

Entries within a directory.

findNamesRecursively

Recursive list of names satisfying predicate.

findRoseFilesRecursively

Return a list of all rose_* files

isDirectory

Predicate returning true for existing directories.

isExisting

Predicate returning true if path exists.

isFile

Predicate returning true for existing regular files.

isNotSymbolicLink

Predicate returning inverse of isSymbolicLink.

isSymbolicLink

Predicate returning true for existing symbolic links.

makeAbsolute

Make path absolute.

makeNormal

Normalize a path name.

makeRelative

Make path relative.

readFile

Load an entire file into an STL container.

toString

Convert a path to a string.

writeFile

Variables

Name

Description

tempNamePattern

Pattern to use when creating temporary files.

Rose::Frontend namespace

Functions

Name

Run

RunSerial

Rose::KeepGoing::Backend namespace

Namespaces

Functions

Rose::KeepGoing::Backend::Compiler namespace

Functions

Variables

Name

jmp_target

Rose::KeepGoing::Backend::Unparser namespace

Functions

Variables

Name

jmp_target

Rose::KeepGoing::Frontend namespace

Namespaces

Functions

Variables

Name

jmp_target

Rose::KeepGoing::Frontend::Commandline namespace

Functions

Variables

Name

jmp_target

Rose::KeepGoing::Frontend::SecondaryPass namespace

Functions

Variables

Name

jmp_target

Rose::KeepGoing::Midend namespace

Functions

Variables

Name

jmp_target

Rose::MemPool namespace

Functions

Name

snapshot

Rose::StringUtility namespace

Functions for operating on strings.

Types

Name

Description

FileNameClassification

NumberParseResult

StringWithLineNumber

String with source location information.

FileNameLibrary

FileWithLineNumbers

A vector of strings with line numbers and file names.

Enums

Name

Description

FileNameLocation

Find file names non‐recursively.

OSType

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Functions

Name

Description

addrIntervalToString

Convert an interval of virtual addresses to a string.

addrToString

Convert a virtual address to a string.

bourneEscape

Escapes characters that are special to the Bourne shell.

cEscape

Escapes characters that are special to C/C++.

cUnescape

Unescapes C++ string literals.

centerJustify

Center a string in a field.

classifyFileName

Determine whether a file is source code or system library.

convertToLowerCase

Convert to lower case.

copyEdit

Replace all occurrences of a string with another string.

csvEscape

Escapes characters that are special in CSV tables.

decode_base64

Convert base‐64 to binary.

directoryDistance

Edit distance between two directory names.

encode_base64

Convert binary data to base‐64.

escapeNewLineCharaters

Escapes line feeds and double quotes.

escapeNewlineAndDoubleQuoteCharacters

fileNameSuffix

Get the file name suffix (extension) without the leading dot.

fixLineTermination

Normalizes line termination.

generate_checksum

Compute a checkshum.

getAbsolutePathFromRelativePath

Get the absolute path from the relative path.

getOSType

Obtain operating system type information.

getPathFromFileName

Returns all but the last component of a path in a filesystem.

hexadecimalToInt

Convert an ASCII hexadecimal character to an integer.

homeDir

Name of the home directory.

htmlEscape

Escapes HTML special characters.

intToHex

Convert an integer to a hexadecimal string.

isContainedIn

Determines whether one string contains another.

isLineTerminated

Returns true if the string ends with line termination.

join

joinEnglish

Join strings as if they were English prose.

join_range

Join individual items to form a single string.

jsonEscape

Escapes characters that are special inside a JSON string.

leftJustify

Left justify a string to specified width.

listToString

listToString overloads

makeOneLine

Converts a multi‐line string to a single line.

numberToString

numberToString overloads

operator+

Concatenate vectors of strings with source location.

operator+=

Append strings with source location information to vector of such.

popen_wrapper

Simple wrapper for Unix popen command.

prefixLines

Insert a prefix string before every line.

readFile

Reads entire text file.

readFileWithPos

Reads an entire text file.

readWordsInFile

Reads words from a file.

removeAnsiEscapes

Remove ANSI escape characters.

removeRedundantSubstrings

Remove redundant and blank lines.

replaceAllCopy

Replace a pattern with another one in a string

rightJustify

Right justify a string to specified width.

signedToHex

signedToHex2

split

Splits strings into parts.

splitStringIntoStrings

Splits string into substring based on a separator character.

stringToList

Split a string into substrings at line feeds.

stripDotsFromHeaderFileName

Remove leading dots.

stripFileSuffixFromFileName

Get the file name without the ".suffix".

stripPathFromFileName

Returns the last component of a path in a filesystem.

toBinary

Convert a number to a binary string.

toHex

toHex2

Convert a number to a hexadecimal and decimal string.

toNumber

toString

Generate C preprocessor #line directives.

tokenize

Split a string into a list based on a separator character.

trim

Trims white space from the beginning and end of a string.

unsignedToHex

unsignedToHex2

untab

Expand horizontal tab characters.

writeFile

Create a file.

operator<<

Stream insertion operators

Rose::Unique namespace

Functions

SageBuilder namespace

High level SAGE III AST node and subtree builders.

Functions

Name

Description

appendTemplateArgumentsToName

DQ (7/27/2012): changed semantics from removing the template arguments in names to adding the template arguments to names.

buildActualArgumentExpression

Build an Actual Argument Expression

buildActualArgumentExpression_nfi

buildAddOp

buildAddOp_nfi

buildAddressOfOp

buildAddressOfOp_nfi

buildAggregateInitializer

Build an aggregate initializer

buildAggregateInitializer_nfi

buildAlignOfOp

buildAlignOfOp overloads

buildAlignOfOp_nfi

buildAndAssignOp

buildAndAssignOp_nfi

buildAndOp

buildAndOp_nfi

buildArrayType

buildArrayType overloads

buildArrowExp

buildArrowExp_nfi

buildArrowStarOp

buildArrowStarOp_nfi

buildAsmStatement

Build a NULL statement

buildAsmStatement_nfi

buildAssignInitializer

Build the rhs of a variable declaration which includes an assignment

buildAssignInitializer_nfi

buildAssignOp

buildAssignOp_nfi

buildAssignStatement

Build an assignment statement from lefthand operand and right hand operand

buildAssignStatement_ast_translate

This version does not recursively reset the file info as a transformation.

buildAttributeSpecificationStatement

Build Fortran attribute specification statement

buildAutoType

buildAwaitExpression

buildAwaitExpression_nfi

buildBFloat16Type

buildBFloat16Val

Build a bfloat16

buildBFloat16Val_nfi

buildBaseClass

DQ (5/6/2013): Added build functions to support SgBaseClass construction.

buildBasicBlock

Build a SgBasicBlock, setting file info internally

buildBasicBlock_nfi

Build a SgBasicBlock and set its parent. This function does NOT link the parent scope to the block.

buildBinaryExpression

Template function to build a binary expression of type T, taking care of parent pointers, file info, lvalue, etc. Available instances include: buildAddOp(), buildAndAssignOp(), buildAndOp(), buildArrowExp(),buildArrowStarOp(),buildAtOp, buildAssignOp(),buildBitAndOp(),buildBitOrOp(),buildBitXorOp(),buildCommaOpExp(), buildConcatenationOp(),buildDivAssignOp(),buildDivideOp(),buildDotExp(),buildEqualityOp(),buildExponentiationOp(),buildGreaterOrEqualOp(),buildGreaterThanOp(),buildIntegerDivideOp(),buildIorAssignOp(),buildLessOrEqualOp(),buildLessThanOp(),buildLshiftAssignOp(),buildLshiftOp(),buildMinusAssignOp(),buildModAssignOp(),buildModOp(),buildMultAssignOp(),buildMultiplyOp(),buildNotEqualOp(),buildOrOp(),buildPlusAssignOp(),buildPntrArrRefExp(),buildRshiftAssignOp(),buildRshiftOp(),buildReplicationOp,buildScopeOp(),buildSubtractOp()buildXorAssignOp() The instantiated functions' prototypes are not shown since they are expanded using macros. Documentation tools do not expand these macros.

buildBinaryExpression_nfi

Template function to build a binary expression of type T, taking care of parent pointers, but without file‐info. Available instances include: buildAddOp(), buildAndAssignOp(), buildAndOp(), buildArrowExp(),buildArrowStarOp(),buildAtOp, buildAssignOp(),buildBitAndOp(),buildBitOrOp(),buildBitXorOp(),buildCommaOpExp(), buildConcatenationOp(),buildDivAssignOp(),buildDivideOp(),buildDotExp(),buildEqualityOp(),buildExponentiationOp(),buildGreaterOrEqualOp(),buildGreaterThanOp(),buildIntegerDivideOp(),buildIorAssignOp(),buildLessOrEqualOp(),buildLessThanOp(),buildLshiftAssignOp(),buildLshiftOp(),buildMinusAssignOp(),buildModAssignOp(),buildModOp(),buildMultAssignOp(),buildMultiplyOp(),buildNotEqualOp(),buildOrOp(),buildPlusAssignOp(),buildPntrArrRefExp(),buildRshiftAssignOp(),buildRshiftOp(),buildReplicationOp(),buildScopeOp(),buildSubtractOp()buildXorAssignOp() The instantiated functions' prototypes are not shown since they are expanded using macros. Documentation tools do not expand these macros.

buildBitAndOp

buildBitAndOp_nfi

buildBitComplementOp

buildBitComplementOp_nfi

buildBitOrOp

buildBitOrOp_nfi

buildBitXorOp

buildBitXorOp_nfi

buildBoolType

buildBoolType overloads

buildBoolValExp

Build a bool value expression, the name convention of SgBoolValExp is little different from others for some unknown reason

buildBoolValExp_nfi

buildBracedInitializer

Build an braced initializer

buildBracedInitializer_nfi

buildBreakStmt

Build a break statement

buildBreakStmt_nfi

buildCaseOptionStmt

Build a case option statement

buildCaseOptionStmt_nfi

buildCastExp

Build a type casting expression

buildCastExp_nfi

buildCatchOptionStmt

Build a catch statement.

buildCatchStatementSeq

Build an initial sequence of Catch blocks containing 0 or 1 element.

buildChar16Type

buildChar16Val

buildChar16Val_nfi

buildChar32Type

buildChar32Val

buildChar32Val_nfi

buildCharType

buildCharVal

buildCharVal_nfi

buildChooseExpression

buildChooseExpression_nfi

buildClassDeclaration

DQ (11/7/2009): Added function to build C++ class (builds both the non‐defining and defining declarations; in that order).

buildClassDeclarationStatement_nfi

Build a generic class declaration statement (SgClassDeclaration or subclass) with a class declaration and definition (creating both the defining and nondefining declarations as required.

buildClassDeclaration_nfi

buildClassDefinition

buildClassDefinition_nfi

buildClassExp

Build class pointer

buildClassExp_nfi

buildClassNameRefExp

buildClassNameRefExp_nfi

buildClassTemplateType

Some support for building class template instantiation declarations. Note, the template is not actually instantiated, but a `forward declaration' node is created.

buildColonShapeExp

Build a Fortran colon‐shape expression, set file info as the default one.

buildColonShapeExp_nfi

No file info version of buildColonShapeExp(). File info is to be set later on.

buildCommaOpExp

buildCommaOpExp_nfi

buildComment

Build and attach a comment, comment style is inferred from the language type of the target node if not provided. It is indeed a wrapper of SageInterface::attachComment().

buildCommonBlock

Build a Fortran Common statement

buildCommonBlockObject

Build a Fortran common block, possibly with a name

buildComplexType

Build a complex type

buildComplexVal

buildComplexVal_nfi

buildCompoundInitializer

Build a compound initializer, for vector type initialization

buildCompoundInitializer_nfi

buildCompoundLiteralExp

buildCompoundLiteralExp_nfi

Build function for compound literals (uses a SgVariableSymbol and is similar to buildVarRefExp_nfi()).

buildConcatenationOp

buildConcatenationOp_nfi

buildConditionalExp

Build a conditional expression ?:

buildConditionalExp_nfi

buildConjugateOp

buildConjugateOp_nfi

buildConstType

Build a const type.

buildConstVolatileModifier

Build a const/volatile type qualifier

buildConstVolatileType

Build a const volatile type.

buildConstructorInitializer

buildConstructorInitializer_nfi

buildContinueStmt

Build a continue statement

buildContinueStmt_nfi

buildCpreprocessorDefineDeclaration

Build and attach #define XX directives, pass "#define xxx xxx" as content.

buildCtorInitializerList_nfi

buildCudaKernelCallExp_nfi

Build a CUDA kernel call expression (kernel<[config]>(parameters))

buildCudaKernelExecConfig_nfi

Build a CUDA kernel execution configuration (<blocks, shared, stream>)

buildDanglingVarRefExp

Build a variable reference expression without symbol‐table lookup.

buildDeclType

Build a decltype reference type

buildDeclarationScope

Build a scope statement. Used to build SgNonrealDecl and SgNonrealType

buildDefaultConstructor

buildDefaultOptionStmt

Build a default option statement

buildDefaultOptionStmt_nfi

buildDefiningClassDeclaration

buildDefiningFunctionDeclaration

Build a function declaration with a function body

buildDefiningMemberFunctionDeclaration

Build a defining ( non‐prototype) member function declaration

buildDefiningTemplateFunctionDeclaration

buildDefiningTemplateMemberFunctionDeclaration

buildDeleteExp

Build a delete statement

buildDeleteExp_nfi

buildDerivedTypeStatement

Build an SgDerivedTypeStatement Fortran derived type declaration with a class declaration and definition (creating both the defining and nondefining declarations as required).

buildDivAssignOp

buildDivAssignOp_nfi

buildDivideOp

buildDivideOp_nfi

buildDoWhileStatement_nfi

buildDoWhileStmt

Build do‐while statement

buildDoWhileStmt_nfi

buildDotExp

buildDotExp_nfi

buildDotStarOp

buildDotStarOp_nfi

buildDoubleType

buildDoubleVal

Build a double value expression

buildDoubleVal_nfi

buildEmptyDeclaration

Build an empty declaration (useful for adding precission to comments and CPP handling under token‐based unparsing).

buildEnumDeclaration

Build an enum, It is also a declaration statement in SAGE III

buildEnumDeclaration_nfi

Build an enum, It is also a declaration statement in SAGE III

buildEnumVal

buildEnumVal_nfi

buildEqualityOp

buildEqualityOp_nfi

buildEquivalenceStatement

buildExponentiationAssignOp

buildExponentiationAssignOp_nfi

buildExponentiationOp

buildExponentiationOp_nfi

buildExprListExp

Build a SgExprListExp, used for function call parameter list etc.

buildExprListExp_nfi

buildExprStatement

Build a SgExprStatement, set File_Info automatically

buildExprStatement_nfi

buildFile

AST high level builders for others

buildFloat128Type

buildFloat128Val

buildFloat128Val_nfi

buildFloat16Type

buildFloat16Val

Build a float16

buildFloat16Val_nfi

buildFloat32Type

buildFloat32Val

Build a float32

buildFloat32Val_nfi

buildFloat32xType

buildFloat64Type

buildFloat64Val

Build a float64

buildFloat64Val_nfi

buildFloat64xType

buildFloat80Type

buildFloat80Val

buildFloat80Val_nfi

buildFloatType

buildFloatVal

buildFloatVal_nfi

Build a float value expression by converting the string

buildFoldExpression

buildFoldExpression_nfi

buildForInitStatement

Build a for init statement

buildForInitStatement_nfi

buildForStatement

Build a for statement, assume none of the arguments is NULL

buildForStatement_nfi

buildFortranContinueStmt

Build a Fortran continue statement

buildFortranContinueStmt_nfi

buildFortranDo

Build a Fortran do construct

buildFortranDo_nfi

buildFortranImplicitType

Build a type based on Fortran's implicit typing rules. Currently this interface does not take into account possible implicit statements that change the rules.

buildFortranIncludeLine

Build Fortran include line

buildFortranKindType

Build a type based on the Fortran kind mechanism

buildFp16Type

buildFunctionCallExp

buildFunctionCallExp overloads

buildFunctionCallExp_nfi

buildFunctionCallStmt

buildFunctionCallStmt overloads

buildFunctionParameterList

buildFunctionParameterList overloads

buildFunctionParameterList_nfi

buildFunctionParameterRefExp

buildFunctionParameterRefExp_nfi

buildFunctionParameterTypeList

buildFunctionParameterTypeList overloads

buildFunctionRefExp

buildFunctionRefExp overloads

buildFunctionRefExp_nfi

buildFunctionType

buildFunctionType overloads

buildGotoStatement

buildGotoStatement overloads

buildGotoStatement_nfi

Build a goto statement from a label expression, supporting only C/C++ and not Fortran cases

buildGreaterOrEqualOp

buildGreaterOrEqualOp_nfi

buildGreaterThanOp

buildGreaterThanOp_nfi

buildHeader

Build a dangling #include "x.h" header, insertHeader() is needed to actually insert it

buildIfStmt

Build if statement

buildIfStmt_nfi

buildImagPartOp

buildImagPartOp_nfi

buildImaginaryType

Build an imaginary type

buildImaginaryVal

buildImaginaryVal_nfi

buildInitializedName

e.g the scope of arguments of functions are different for defining and nondefining functions.

buildInitializedName_nfi

buildIntType

buildIntVal

Build an integer value expression

buildIntValHex

buildIntVal_nfi

Build an integer value expression by converting the string

buildIntegerDivideAssignOp

buildIntegerDivideAssignOp_nfi

buildIntegerDivideOp

buildIntegerDivideOp_nfi

buildIorAssignOp

buildIorAssignOp_nfi

buildLabelRefExp

Build a Fortran numeric label ref exp

buildLabelStatement

Note that the scope of a label statement is special. It is SgFunctionDefinition, not the closest scope statement such as SgBasicBlock.

buildLabelStatement_nfi

buildLambdaCapture

buildLambdaCaptureList

buildLambdaCaptureList_nfi

buildLambdaCapture_nfi

buildLambdaExp

DQ (9/3/2014): Adding support for C++11 Lambda expressions

buildLambdaExp_nfi

buildLessOrEqualOp

buildLessOrEqualOp_nfi

buildLessThanOp

buildLessThanOp_nfi

buildLongDoubleType

buildLongDoubleVal

buildLongDoubleVal_nfi

buildLongIntVal

Build a long integer value expression

buildLongIntValHex

buildLongIntVal_nfi

buildLongLongIntVal

Build a long long integer value expression

buildLongLongIntValHex

buildLongLongIntVal_nfi

buildLongLongType

buildLongType

buildLshiftAssignOp

buildLshiftAssignOp_nfi

buildLshiftOp

buildLshiftOp_nfi

buildMemberFunctionCall

buildMemberFunctionCall overloads

buildMemberFunctionRefExp

buildMemberFunctionRefExp_nfi

buildMemberFunctionType

DQ (8/19/2012): Refactored some of the code supporting construction of the SgMemberFunctionType.

buildMicrosoftAttributeDeclaration

DQ (8/17/2014): Adding support for MS‐style attribute declarations.

buildMinusAssignOp

buildMinusAssignOp_nfi

buildMinusMinusOp

buildMinusMinusOp_nfi

buildMinusOp

Build ‐‐ expression, Sgop_mode is a value of either SgUnaryOp::prefix or SgUnaryOp::postfix

buildMinusOp_nfi

buildModAssignOp

buildModAssignOp_nfi

buildModOp

buildModOp_nfi

buildModifierType

Build a modifier type.

buildModuleStatement

Build a Fortran module declaration.

buildMultAssignOp

buildMultAssignOp_nfi

buildMultibyteNopStatement

DQ (4/30/2010): Added support for building nop statement using asm statement Building nop statement using asm statement

buildMultiplyOp

buildMultiplyOp_nfi

buildNamespaceAliasDeclarationStatement

buildNamespaceDeclaration

tps (09/02/2009) : Added support for building namespaces

buildNamespaceDeclaration_nfi

buildNamespaceDefinition

buildNewExp

buildNoexceptOp

Build noexcept operator expression with an expression parameter

buildNoexceptOp_nfi

buildNondefiningClassDeclaration

DQ (11/7/2009): Added functions to build C++ class.

buildNondefiningClassDeclaration_nfi

buildNondefiningEnumDeclaration_nfi

Build an enum first nondefining declaration, without file info

buildNondefiningFunctionDeclaration

buildNondefiningFunctionDeclaration overloads

buildNondefiningMemberFunctionDeclaration

Build a prototype member function declaration

buildNondefiningProcedureHeaderStatement

Build a nondefining SgProcedureHeaderStatement, handle function type, symbol etc transparently

buildNondefiningTemplateClassDeclaration

buildNondefiningTemplateClassDeclaration()

buildNondefiningTemplateClassDeclaration_nfi

DQ (11/29/2011): Adding template declaration support to the AST.

buildNondefiningTemplateFunctionDeclaration

buildNondefiningTemplateMemberFunctionDeclaration

buildNonrealBaseClass

buildNonrealDecl

Build a declaration of a non‐real class or class‐member representing template parameters and their members

buildNonrealRefExp_nfi

Build a reference to the non‐real declaration of a member of a non‐real class

buildNonrealType

buildNonrealType overloads

buildNotEqualOp

buildNotEqualOp_nfi

buildNotOp

buildNotOp_nfi

buildNullExpression

Build a null expression, set file info as the default one.

buildNullExpression_nfi

No file info version of buildNullExpression(). File info is to be set later on.

buildNullStatement

Build a NULL statement

buildNullStatement_nfi

buildNullptrType

buildNullptrValExp

DQ (7/31/2014): Adding support for C++11 nullptr const value expressions.

buildNullptrValExp_nfi

buildOpaqueType

Build an opaque type with a name, useful when a type's details are unknown during transformation, especially for a runtime library's internal type. Must provide scope here. Some types are not known during translation but nevertheless are needed. For example, some internal types from a runtime library. To work around this problem: this function prepends a hidden typedef declaration into scope 'typedef int OpaqueTypeName;' The translation‐generated code is expected to include the runtime library's headers to have the real type declarations.

buildOpaqueVarRefExp

Build a variable reference expression at scope to an opaque variable which has unknown information except for its name. Used when referring to an internal variable defined in some headers of runtime libraries.(The headers are not yet inserted into the file during translation). Similar to buildOpaqueType(); It will declare a hidden int varName at the specified scope to cheat the AST consistence tests.

buildOrOp

buildOrOp_nfi

buildPlusAssignOp

buildPlusAssignOp_nfi

buildPlusPlusOp

Build ++x or x++ , specify prefix or postfix using either SgUnaryOp::prefix or SgUnaryOp::postfix

buildPlusPlusOp_nfi

buildPntrArrRefExp

buildPntrArrRefExp_nfi

buildPointerDerefExp

buildPointerDerefExp_nfi

buildPointerMemberType

Pei‐Hung (06/30/2023): support for SgPointerMemberType

buildPointerType

Build a pointer type

buildPragma

Build SgPragma

buildPragmaDeclaration

Build pragma declaration, handle SgPragma and defining/nondefining pointers internally

buildPragmaDeclaration_nfi

buildProcedureHeaderStatement

Build a Fortran subroutine or procedure

buildRangeBasedForStatement_nfi

buildRangeExp

buildRealPartOp

buildRealPartOp_nfi

buildReferenceType

Build a reference type

buildRestrictType

Build a restrict type.

buildReturnStmt

Build a return statement

buildReturnStmt_nfi

buildRshiftAssignOp

buildRshiftAssignOp_nfi

buildRshiftOp

buildRshiftOp_nfi

buildRvalueReferenceType

Build a rvalue reference type

buildScopeOp

buildScopeOp_nfi

buildShortType

buildShortVal

buildShortValHex

buildShortVal_nfi

buildSigned128bitIntegerType

buildSignedCharType

buildSignedCharVal

Build a signed char

buildSignedCharValHex

buildSignedCharVal_nfi

buildSignedIntType

buildSignedLongLongType

buildSignedLongType

buildSignedShortType

buildSizeOfOp

buildSizeOfOp overloads

buildSizeOfOp_nfi

buildSourceFile

buildSourceFile overloads

buildSpaceshipOp

buildSpaceshipOp_nfi

buildStatementExpression

Build a GNU statement expression

buildStatementExpression_nfi

buildStaticAssertionDeclaration

DQ (7/25/2014): Adding support for C11 static assertions.

buildStmtDeclarationStatement

Build a StmtDeclarationStmt

buildStmtDeclarationStatement_nfi

buildStringType

DQ (8/21/2010): We want to move to the new buildStringType( SgExpression*,size_t) function over the older buildStringType() function.

buildStringVal

buildStringVal_nfi

buildStructDeclaration

Build a structure, It is also a declaration statement in SAGE III

buildSubscriptExpression_nfi

Build a SgSubscriptExpression, used for array shape expressions. The lower bound and stride may be nullptrs

buildSubtractOp

buildSubtractOp_nfi

buildSuperExp

Build super pointer

buildSuperExp_nfi

buildSwitchStatement

Build a switch statement

buildSwitchStatement_nfi

buildTemplateClassDeclaration

Build tempplate class declaration

buildTemplateClassDeclaration_nfi

buildTemplateClassDefinition

Build a template class definition statement

buildTemplateClassType

Same as buildClassTemplateType(), just better name

buildTemplateFunctionRefExp_nfi

DQ (12/15/2011): Adding template declaration support to the AST.

buildTemplateInstantiationTypedefDeclaration_nfi

buildTemplateMemberFunctionRefExp_nfi

DQ (12/29/2011): Adding template declaration support to the AST.

buildTemplateParameter

Build a template parameter, passing enum kind and SgTemplateType template_parameter_enum { parameter_undefined = 0, type_parameter = 1, nontype_parameter = 2, template_parameter = 3}

buildTemplateParameterVal

Build an template parameter value expression

buildTemplateParameterVal_nfi

buildTemplateType

Build a template type, used for template parameter and later argument

buildTemplateTypedefDeclaration_nfi

buildTemplateVariableDeclaration

Build template variable declarations

buildTemplateVariableDeclaration_nfi

buildThisExp

Build this pointer

buildThisExp_nfi

buildThrowOp

Build a ThrowOp expression

buildTryStmt

Build a try statement.

buildTypeExpression

DQ (7/24/2014): Adding support for c11 generic operands.

buildTypeIdOp

DQ (1/25/2013): Added support for typeId operators.

buildTypeOfType

Build a GNU typeof operator

buildTypeTraitBuiltinOperator

buildTypedefDeclaration

Build a typedef declaration, such as: typedef int myint; typedef struct A {..} s_A;

buildTypedefDeclaration_nfi

buildUnaryAddOp

buildUnaryAddOp_nfi

buildUnaryExpression

Template function to build a unary expression of type T. Instantiated functions include:buildAddressOfOp(),buildBitComplementOp(),buildBitComplementOp(),buildMinusOp(),buildNotOp(),buildPointerDerefExp(),buildUnaryAddOp(),buildMinusMinusOp(),buildPlusPlusOp(). They are also used for the unary vararg operators (which are not technically unary operators). The instantiated functions' prototypes are not shown since they are expanded using macros. Documentation tools do not expand these macros.

buildUnaryExpression_nfi

Template function to build a unary expression of type T with no file info. Instantiated functions include:buildAddressOfOp(),buildBitComplementOp(),buildBitComplementOp(),buildMinusOp(),buildNotOp(),buildPointerDerefExp(),buildUnaryAddOp(),buildMinusMinusOp(),buildPlusPlusOp(). They are also used for the unary vararg operators (which are not technically unary operators). The instantiated functions' prototypes are not shown since they are expanded using macros. Documentation tools do not expand these macros.

buildUnknownType

buildUnsigned128bitIntegerType

buildUnsignedCharType

buildUnsignedCharVal

Build an unsigned char

buildUnsignedCharValHex

buildUnsignedCharVal_nfi

buildUnsignedIntType

buildUnsignedIntVal

Build an unsigned integer

buildUnsignedIntValHex

buildUnsignedIntVal_nfi

buildUnsignedLongLongIntVal

Build an unsigned long long integer

buildUnsignedLongLongIntValHex

buildUnsignedLongLongIntVal_nfi

buildUnsignedLongLongType

buildUnsignedLongType

buildUnsignedLongVal

Build a unsigned long integer

buildUnsignedLongValHex

buildUnsignedLongVal_nfi

buildUnsignedShortType

buildUnsignedShortVal

Build an unsigned short integer

buildUnsignedShortValHex

buildUnsignedShortVal_nfi

buildUsingDirectiveStatement

Build a using directive statement

buildVarArgCopyOp

buildVarArgCopyOp_nfi

buildVarArgEndOp

buildVarArgEndOp_nfi

buildVarArgOp_nfi

Build vararg op expression

buildVarArgStartOneOperandOp

buildVarArgStartOneOperandOp_nfi

buildVarArgStartOp

buildVarArgStartOp_nfi

buildVarRefExp

buildVarRefExp overloads

buildVarRefExp_nfi

buildVariableDeclaration

Build a variable declaration, handle symbol table transparently

buildVariableDeclaration_nfi

buildVariableDefinition_nfi

Build variable definition

buildVariantExpression

handle side effects of parent pointers, Sg_File_Info, lvalue etc.

buildVoidType

buildVoidVal

DQ (2/14/2019): Adding support for C++14 void value expressions.

buildVoidVal_nfi

buildVolatileType

Build a volatile type.

buildWcharType

buildWcharVal

buildWcharVal_nfi

buildWhileStmt

Build while statement

buildWhileStmt_nfi

buildXorAssignOp

buildXorAssignOp_nfi

clearScopeStack

display

display function for debugging

emptyScopeStack

errorCheckingTargetAST

Error checking the inserted snippet AST.

findAssociatedDeclarationInTargetAST

findAssociatedSymbolInTargetAST

fixupCopyOfAstFromSeparateFileInNewTargetAst

Fixup any AST moved from one file two another (references to symbols, types, etc.).

fixupCopyOfNodeFromSeparateFileInNewTargetAst

fixupSharingSourcePosition

Sharing IR nodes requires that the file id be added to the fileIDsToUnparse held in the Sg_File_Info object.

fixupSourcePositionFileSpecification

getGlobalScopeFromScopeStack

Support to retrive the SgGlobal from the internal scope stack (error if not present in a non‐empty list, return null for empty list).

getSourcePositionClassificationMode

Get the current source position classification (defines how IR nodes built by the SageBuilder interface will be classified).

getTargetFileType

getTargetFileTypeSupport

getTemplateArgumentList

getTemplateParameterList

inSwitchScope

popScopeStack

pushScopeStack

Public interfaces of the scope stack, should be stable

setSourcePositionClassificationMode

Set the current source position classification (defines how IR nodes built by the SageBuilder interface will be classified).

setTemplateArgumentParents

setTemplateArgumentsInDeclaration

DQ (9/16/2012): Added function to support setting the template arguments and setting their parents (and for any relevant declaration).

setTemplateNameInTemplateInstantiations

DQ (2/11/2012): Added support to set the template name in function template instantiations (member and non‐member).

setTemplateParameterParents

setTemplateParametersInDeclaration

setTemplateSpecializationArgumentsInDeclaration

testTemplateArgumentParents

testTemplateParameterParents

DQ (9/16/2012): Added function to support setting the template parameters and setting their parents (and for any relevant declaration).

topScopeStack

unparseTemplateArgumentToString

DQ (3/9/2018): Added to support debugging.

Variables

Name

Description

ScopeStack

intended to be a private member, don't access it directly. could be changed any time

SourcePositionClassificationMode

C++ SageBuilder namespace specific state for storage of the source code position state (used to control how the source code positon is defined for IR nodes built within the SageBuilder interface).

symbol_table_case_insensitive_semantics

Support for construction of case sensitive/insensitive symbol table handling in scopes.

Using Namespace Directives

Name

Templates

SageInterface namespace

Functions that are useful when operating on the AST.

Types

Name

Description

DeclarationSets

DeferredTransformation

Add, remove,and replace AST

OutputLocalSymbolTables

PreprocessingInfoData

StatementGenerator

Interface for creating a statement whose computation writes its answer into a given variable.

Transformation_Record

UniqueNameAttribute

A persistent attribute to represent a unique name for an expression

const_int_expr_t

The datastructure is used as the return type for SageInterface::evaluateConstIntegerExpression(). One needs to always check whether hasValue_ is true before accessing value_

Enums

Name

Description

DeleteAstMode

Function to delete AST subtree's nodes only, users must take care of any dangling pointers, symbols or types that result.

Functions

Name

Description

HasNoThrowAssign

HasNoThrowConstructor

HasNoThrowCopy

HasTrivialAssign

HasTrivialConstructor

HasTrivialCopy

HasTrivialDestructor

HasVirtualDestructor

IsAbstract

IsBaseOf

IsClass

strip off typedef and modifer types, then check if a type is a class type, excluding union type.

IsEmpty

IsEnum

IsLiteralType

IsPod

IsPolymorphic

IsStandardLayout

IsTrivial

IsUnion

ReductionRecognition

Recognize and collect reduction variables and operations within a C/C++ loop, following OpenMP 3.0 specification for allowed reduction variable types and operation types.

UnderlyingType

addDefaultConstructorIfRequired

addMangledNameToCache

addMessageStatement

Function to add "C" style comment to statement.

addStepToLoopBody

Add a step statement to the end of a loop body Add a new label to the end of the loop, with the step statement after it; then change all continue statements in the old loop body into jumps to the label

addTextForUnparser

Add a string to be unparsed to support code generation for back‐end specific tools or compilers.

addVarRefExpFromArrayDimInfo

Find all SgPntrArrRefExp under astNode, then add SgVarRefExp (if any) of SgPntrArrRefExp's dim_info into NodeList_t

annotateExpressionsWithUniqueNames

Generate unique names for expressions and attach the names as persistent attributes ("UniqueNameAttribute")

appendArg

Append an argument to SgFunctionParameterList, transparently set parent,scope, and symbols for arguments when possible We recommend to build SgFunctionParameterList before building a function declaration However, it is still allowed to append new arguments for existing function declarations.

appendExpression

Append an expression to a SgExprListExp, set the parent pointer also

appendExpressionList

Append an expression list to a SgExprListExp, set the parent pointers also

appendStatement

appendStatement overloads

appendStatementList

Append a list of statements to the end of the current scope, handle side effect of appending statements, e.g. preprocessing info, defining/nondefining pointers etc.

appendStatementWithDependentDeclaration

Append a copy ('decl') of a function ('original_statement') into a 'scope', include any referenced declarations required if the scope is within a compiler generated file. All referenced declarations, including those from headers, are inserted if excludeHeaderFiles is set to true (the new file will not have any headers).

astIntersection

Compute the intersection set for two ASTs.

attachArbitraryText

Attach an arbitrary string to a located node. A workaround to insert irregular statements or vendor‐specific attributes.

attachComment

attachComment overloads

buildDeclarationSets

buildForwardFunctionDeclaration

Generate a non‐defining (forward) declaration from a defining function declaration.

buildFunctionPrototype

call_liveness_analysis

Call liveness analysis on an entire project

changeAllBodiesToBlocks

Fix up ifs, loops, while, switch, Catch, OmpBodyStatement, etc. to have blocks as body components. It also adds an empty else body to if statements that don't have them.

changeBreakStatementsToGotos

If the given statement contains any break statements in its body, add a new label below the statement and change the breaks into gotos to that new label.

changeContinuesToGotos

Change continue statements in a given block of code to gotos to a label

checkAccessPermissions

checkForInitializers

checkSgNodePointers

checkSymbolTables

checkTypesAreEqual

cleanupNontransformedBasicBlockNode

Remove unused basic block IR nodes added as part of normalization.

clearMangledNameCache

clearScopeNumbers

Clears the cache of scope,integer pairs for the input function.

clearSharedGlobalScopes

clearUnusedVariableSymbols

Clear those variable symbols with unknown type (together with initialized names) which are also not referenced by any variable references or declarations under root. If root is NULL, all symbols with unknown type will be deleted.

collectModifiedLocatedNodes

This collects the SgLocatedNodes that are marked as modified (a flag automatically set by all set_* generated functions) (useful in debugging).

collectModifiedStatements

This collects the statements that are marked as modified (a flag automatically set by all set_* generated functions) (useful in debugging).

collectReadOnlySymbols

Collect read only variable symbols within a statement. The statement can be either of a function, a scope, or a single line statement. For accesses to members of aggregate data, we return the coarse grain aggregate mem obj by default.

collectReadOnlyVariables

Collect read only variables within a statement. The statement can be either of a function, a scope, or a single line statement. For accesses to members of aggregate data, we return the coarse grain aggregate mem obj by default.

collectReadWriteRefs

Collect all read and write references within stmt, which can be a function, a scope statement, or a single statement. Note that a reference can be both read and written, like i++

collectReadWriteVariables

Collect unique variables which are read or written within a statement. Note that a variable can be both read and written. The statement can be either of a function, a scope, or a single line statement. For accesses to members of aggregate data, we return the coarse grain aggregate mem obj by default.

collectSourceSequenceNumbers

collectTransformedStatements

This collects the statements that are marked as transformed (useful in debugging).

collectUseByAddressVariableRefs

Collect variable references involving use by address: including &a expression and foo(a) when type2 foo(Type& parameter) in C++

collectVarRefs

Collect all variable references in a subtree

collectVariableReferencesInArrayTypes

Collect variable references in array types. The default NodeQuery::querySubTree() will miss variables referenced in array type's index list. e.g. double *buffer = new double[numItems];

computeUniqueNameForUseAsIdentifier

Traversal to set the global map of names to node and node to names.collisions to support generateUniqueNameForUseAsIdentifier() function.

constantFolding

Constant folding an AST subtree rooted at 'r' (replacing its children with their constant values, if applicable). Please be advised that constant folding on floating point computation may decrease the accuracy of floating point computations! It is a wrapper function for ConstantFolding::constantFoldingOptimization(). Note that only r's children are replaced with their corresponding constant values, not the input SgNode r itself. You have to call this upon an expression's parent node if you want to fold the expression.

containsUnknownType

Check if a type (or any nested type) is unknown/incomplete.

convertAllForsToWhiles

convertForToWhile

convertFunctionDefinitionsToFunctionPrototypes

XXX This function operates on the new file used to support outlined function definitions. We use a copy of the file where the code will be outlined FROM, so that if there are references to declarations in the outlined code we can support the outpiled code with those references. This approach has the added advantage of also supporting the same include file tree as the original file where the outlined code is being taken from.

convertRefToInitializedName

Variable references can be introduced by SgVarRef, SgPntrArrRefExp, SgInitializedName, SgMemberFunctionRef etc. For Dot and Arrow Expressions, their lhs is used to obtain SgInitializedName (coarse grain) by default. Otherwise, fine‐grain rhs is used.

copyExpression

Deep copy an expression

copyStatement

Deep copy a statement

createTempVariableAndReferenceForExpression

createTempVariableForExpression

Given an expression, generates a temporary variable whose initializer optionally evaluates that expression. Then, the var reference expression returned can be used instead of the original expression. The temporary variable created can be reassigned to the expression by the returned SgAssignOp; this can be used when the expression the variable represents needs to be evaluated. NOTE: This handles reference types correctly by using pointer types for the temporary.

cutPreprocessingInfo

Cut preprocessing information from a source node and save it into a buffer. Used in combination of pastePreprocessingInfo(). The cut‐paste operation is similar to moveUpPreprocessingInfo() but it is more flexible in that the destination node can be unknown during the cut operation.

declarationPositionString

Generate a unique string from the source file position information

declarationPreceedsDefinition

Check if a defining declaration comes before of after the non‐defining declaration.

deepCopy

A template function for deep copying a subtree. It is also used to create deepcopy functions with specialized parameter and return types. e.g SgExpression* copyExpression(SgExpression* e);

deepCopyNode

Deep copy an arbitrary subtree

deepDelete

Deep delete a sub AST tree. It uses postorder traversal to delete each child node. Users must take care of any dangling pointers, symbols or types that result. This is identical to deleteAST()

deleteAST

deleteExpressionTreeWithOriginalExpressionSubtrees

Special purpose function for deleting AST expression tress containing valid original expression trees in constant folded expressions (for internal use only).

detectCycleInType

displayScope

doLoopNormalization

Normalize a Fortran Do loop. Make the default increment expression (1) explicit

dumpInfo

Dump information about a SgNode for debugging

dumpPreprocInfo

Dumps a located node's preprocessing information.

enclosingNamespaceScope

Find the enclosing namespace of a declaration

ensureBasicBlockAsBodyOfCaseOption

Check if the body of a 'case option' statement is a SgBasicBlock, create one if not.

ensureBasicBlockAsBodyOfCatch

Check if the body of a 'catch' statement is a SgBasicBlock, create one if not.

ensureBasicBlockAsBodyOfDefaultOption

Check if the body of a 'default option' statement is a SgBasicBlock, create one if not.

ensureBasicBlockAsBodyOfDoWhile

Check if the body of a 'do .. while' statement is a SgBasicBlock, create one if not.

ensureBasicBlockAsBodyOfFor

Check if the body of a 'for' statement is a SgBasicBlock, create one if not.

ensureBasicBlockAsBodyOfOmpBodyStmt

Check if the body of a SgOmpBodyStatement is a SgBasicBlock, create one if not

ensureBasicBlockAsBodyOfSwitch

Check if the body of a 'switch' statement is a SgBasicBlock, create one if not.

ensureBasicBlockAsBodyOfWhile

Check if the body of a 'while' statement is a SgBasicBlock, create one if not.

ensureBasicBlockAsFalseBodyOfIf

Check if the false body of a 'if' statement is a SgBasicBlock, create one if not when the flag is true.

ensureBasicBlockAsTrueBodyOfIf

Check if the true body of a 'if' statement is a SgBasicBlock, create one if not.

ensureCaseInsensitiveSymbolTable

ensureSymbolParentPointers

eraseNullPreprocessingInfo

evaluateConstIntegerExpression

The function tries to evaluate const integer expressions (such as are used in array dimension sizes). It follows variable symbols, and requires constness.

extractPragmaKeyword

Extract a SgPragmaDeclaration's leading keyword . For example "#pragma omp parallel" has a keyword of "omp".

findBreakStmts

Find break statements inside a particular statement, stopping at nested loops or switches loops or switch statements defines their own contexts for break statements. The function will stop immediately if run on a loop or switch statement. If fortranLabel is non‐empty, breaks (EXITs) to that label within nested loops are included in the returned list.

findContinueStmts

Find all continue statements inside a particular statement, stopping at nested loops Nested loops define their own contexts for continue statements. The function will stop immediately if run on a loop statement. If fortranLabel is non‐empty, continues (CYCLEs) to that label within nested loops are included in the returned list.

findDeclarationStatement

Topdown traverse a subtree from root to find the first declaration given its name, scope (optional, can be NULL), and defining or nondefining flag.

findEnclosingLoop

Find the closest loop outside the given statement; if fortranLabel is not empty, the Fortran label of the loop must be equal to it

findEnclosingOmpClauseBodyStatement

Find enclosing OpenMP clause body statement from s. If s is already one, return it directly.

findEnclosingSwitch

Find the closest switch outside a given statement (normally used for case and default statements)

findFirstDefiningFunctionDecl

Find the first defining function declaration statement in a scope

findFirstSgCastExpMarkedAsTransformation

findFunctionDeclaration

Topdown traverse a subtree from root to find the first function declaration matching the given name, scope (optional, can be NULL), and defining or nondefining flag. This is an instantiation of findDeclarationStatement<T>.

findFunctionType

Find the function type matching a function signature plus a given return type

findGotoStmts

findHeader

Find the preprocessingInfo node representing #include <header.h> or #include "header.h" within a source file. Return NULL if not found.

findLastDeclarationStatement

Find the last declaration statement within a scope (if any). This is often useful to decide where to insert another variable declaration statement. Pragma declarations are not treated as a declaration by default in this context.

findMain

top‐down traversal from current node to find the main() function declaration

findSurroundingStatementFromSameFile

Supporting function to comment relocation in insertStatement() and removeStatement().

findUnusedLabels

Find unused labels which are not targets of any goto statements

fixClassDeclaration

Fix symbols, parent and scope pointers. Used internally within appendStatment(), insertStatement() etc when a class declaration was built without knowing its target scope.

fixFunctionDeclaration

Fix the symbol table and set scope (only if scope in declaration is not already set).

fixLabelStatement

Fix symbol table for SgLabelStatement. Used Internally when the label is built without knowing its target scope. Both parameters cannot be NULL.

fixNamespaceDeclaration

Fix symbols, parent and scope pointers. Used internally within appendStatment(), insertStatement() etc when a namespace declaration was built without knowing its target scope.

fixStatement

A wrapper containing fixes (fixVariableDeclaration(),fixStructDeclaration(), fixLabelStatement(), etc) for all kinds statements. Should be used before attaching the statement into AST.

fixStructDeclaration

Fix symbols, parent and scope pointers. Used internally within appendStatment(), insertStatement() etc when a struct declaration was built without knowing its target scope.

fixTemplateDeclaration

Fix the symbol table and set scope (only if scope in declaration is not already set).

fixVariableDeclaration

Patch up symbol, scope, and parent information when a SgVariableDeclaration's scope is known.

fixVariableReferences

Mostly used internally when some AST pieces are built without knowing their target scope/parent, especially during bottom‐up construction of AST. The associated symbols, parent and scope pointers cannot be set on construction then. A set of utility functions are provided to patch up scope, parent, symbol for them when the target scope/parent become know.

fixupReferencesToSymbols

All the symbol table references in the copied AST need to be reset after rebuilding the copied scope's symbol table.

forLoopNormalization

Normalize a for loop, return true if successful. Generated constants will be fold by default.

forallMaskExpression

Get the mask expression from the header of a SgForAllStatement

functionCallExpressionPreceedsDeclarationWhichAssociatesScope

generateFileList

Returns STL vector of SgFile IR node pointers.

generateFunctionDefinitionsList

generateProjectName

Added mechanism to generate project name from list of file names

generateUniqueName

Generate unique name from C and C++ constructs. The name may contain space.

generateUniqueNameForUseAsIdentifier

Generate a useful name to support construction of identifiers from declarations.

generateUniqueNameForUseAsIdentifier_support

generateUniqueVariableName

Generate a name like temp# that is unique in the current scope and any parent and children scopes. # is a unique integer counter.

getAllStatementsAtLine

Obtain all the queryed statement at line of a source file

getArrayElementCount

Calculate the number of elements of an array type: dim1* dim2*... , assume element count is 1 for int a[].

getArrayElementType

Get the element type of an array. It recursively find the base type for multi‐dimension array types

getAssociatedType

Get the enclosing type of this associated node, not used other than in ./src/backend/unparser/nameQualificationSupport.C

getAssociatedTypeFromFunctionTypeList

Get the type of the associated argument expression from the function type.

getBoolType

Get the right bool type according to C or C++ language input

getClassTypeChainForMemberReference

getDeclarationOfNamedFunction

Given a SgExpression that represents a named function (or bound member function), return the mentioned function

getDeclaredType

Returns the type introduced by a declaration.

getDefaultConstructor

Get the default constructor from the class declaration

getDefaultDestructor

Get the default destructor from the class declaration

getDependentDeclarations

Get a statement's dependent declarations which declares the types used in the statement. The returned vector of declaration statements are sorted according to their appearance order in the original AST. Any reference to a class or template class from a namespace will treated as a reference to the enclosing namespace.

getDimensionCount

Get the number of dimensions of an array type

getElementType

Get the element type of an array, pointer or string, or NULL if not applicable. This function only check one level base type. No recursion.

getEnclosingClassDeclaration

Get the closest class declaration enclosing the specified AST node,

getEnclosingClassDefinition

Get the closest class definition enclosing the specified AST node,

getEnclosingExprListExp

Get the enclosing SgExprListExp (used as part of function argument index evaluation in subexpressions).

getEnclosingFileNode

get the SgFile node from current node

getEnclosingFunctionDeclaration

Find the enclosing function declaration, including its derived instances like isSgProcedureHeaderStatement, isSgProgramHeaderStatement, and isSgMemberFunctionDeclaration.

getEnclosingFunctionDefinition

getEnclosingModuleStatement

Get the closest module statement enclosing the specified AST node,

getEnclosingNode

Find a node by type using upward traversal.

getEnclosingProcedure

Find the function definition

getEnclosingScope

Get the enclosing scope from a node n

getEnclosingSourceFile

Find enclosing source file node

getEnclosingStatement

Find the closest enclosing statement, including the given node

getFirstGlobalScope

return the first global scope under current project

getFirstInitializedName

Get the first initialized name of a declaration statement

getFirstStatement

Get the first statement within a scope, return NULL if it does not exist. Skip compiler‐generated statement by default. Count transformation‐generated ones, but excluding those which are not to be outputted in unparsers.

getFirstStatementAtLine

Obtain the first queryed statement at line of a source file

getFirstVarSym

Get the variable symbol for the first initialized name of a declaration stmt.

getFirstVarType

Get the data type of the first initialized name of a declaration statement

getFirstVariable

convenience function that returns the first initialized name in a list of variable declarations.

getForLoopInformations

getFrontendSpecificNodes

getFunctionDeclaration

getGlobalScope

Traverse back through a node's parents to find the enclosing global scope

getInParameters

Get a vector of input parameters from the function parameter list

getInitializerOfExpression

Get the initializer containing an expression if it is within an initializer.

getIntegerConstantValue

Get the constant value from a constant integer expression; abort on everything else. Note that signed long longs are converted to unsigned.

getLastStatement

get the last statement within a scope, return NULL if it does not exit

getLiveVariables

get liveIn and liveOut variables for a for loop from liveness analysis result liv.

getLoopBody

Routines to get and set the body of a loop

getLoopCondition

Routines to get the condition of a loop. It recognize While‐loop, For‐loop, and Do‐While‐loop

getLoopIndexVariable

Return the loop index variable for a for loop

getMangledNameFromCache

getNextStatement

Get next statement within the same scope of current statement

getNonInstantiatonDeclarationForClass

getOutParameters

Get a vector of output parameters from the function parameter list

getPreviousStatement

Get previous statement of the current statement. It may return a previous statement of a parent scope by default (climbOutScope is true), otherwise only a previous statement of the same scope is returned.

getProject

Get the current SgProject IR Node.

getScope

Get the closest scope from astNode. Return astNode if it is already a scope.

getSgNodeListFromMemoryPool

Query memory pools to grab SgNode of a specified type

getSwitchCases

getSymbolsUsedInExpression

Find referenced symbols within an expression

getTemplateDeclaration

Get the enclosing TemplateDeclaration statement

getTemplateParameterKeyword

getTypeName

Get the string representing the type name

get_C_array_dimensions

returns the array dimensions in an array as defined for arrtype

get_name

get_name overloads

guardNode

Add preproccessor guard around a given node. It surrounds the node with "#if guard" and "#endif"

hasMultipleInitStatmentsOrExpressions

Check if a for loop uses C99 style initialization statement with multiple expressions like for (int i=0, j=0; ..) or for (i=0,j=0;...)

hasSameGlobalScope

This is supporting the recognition of functions in header files from two different ASTs

hasSimpleChildrenList

Check if a scope statement has a simple children statement list so insert additional statements under the scope is straightforward and unambiguous . for example, SgBasicBlock has a simple statement list while IfStmt does not.

hasTemplateSyntax

hasTrivialDestructor

Does a type have a trivial (built‐in) destructor?

initializeIfStmt

Support function used for variable declarations in conditionals

initializeSwitchStatement

Support function used for variable declarations in conditionals

initializeWhileStatement

Support function used for variable declarations in conditionals

insertAfterUsingCommaOp

Insert an expression (new_exp ) after another expression (anchor_exp) has possible side effects, without changing the original semantics. This is done by using two comma operators: type T1; ... ((T1 = anchor_exp, new_exp),T1) )... , where T1 is a temp variable saving the possible side effect of anchor_exp. The top level comma op exp is returned. The reference to T1 in T1 = anchor_exp is saved in temp_ref.

insertBeforeUsingCommaOp

Insert an expression (new_exp )before another expression (anchor_exp) has possible side effects, without changing the original semantics. This is achieved by using a comma operator: (new_exp, anchor_exp). The comma operator is returned.

insertHeader

insertHeader overloads

insertStatement

Insert a statement before or after the target statement within the target's scope. Move around preprocessing info automatically

insertStatementAfter

Insert a statement after a target statement, Move around preprocessing info automatically by default

insertStatementAfterLastDeclaration

insertStatementAfterLastDeclaration overloads

insertStatementBefore

Insert a statement before a target statement

insertStatementBeforeFirstNonDeclaration

Insert a statement before the first non‐declaration statement in a scope. If the scope has no non‐declaration statements

insertStatementList

Insert a list of statements before or after the target statement within the

insertStatementListAfter

Insert a list of statements after a target statement

insertStatementListBefore

Insert a list of statements before a target statement

insertStatementListBeforeFirstNonDeclaration

Insert statements before the first non‐declaration statement in a scope. If the scope has no non‐declaration statements

insideHeader

Check if a node is from a header file

insideSystemHeader

Check if a node is from a system header file

instrumentEndOfFunction

Instrument(Add a statement, often a function call) into a function right before the return points, handle multiple return statements (with duplicated statement s) and return expressions with side effects. Return the number of statements inserted. Useful when adding a runtime library call to terminate the runtime system right before the end of a program (e.g., OpenMP). Return with complex expressions with side effects are rewritten using an additional assignment statement.

isAddressTaken

isAncestor

check if node1 is a strict ancestor of node 2. (a node is not considered its own ancestor)

isArrayReference

Check if an expression is an array access (SgPntrArrRefExp). If so, return its name expression and subscripts if requested. Users can use convertRefToInitializedName() to get the possible name. It does not check if the expression is a top level SgPntrArrRefExp.

isAssignable

Is a type assignable? This may not quite work properly.

isAssignmentStatement

Check if a SgNode _s is an assignment statement (any of =,+=,‐=,&=,/=, ˆ=, etc)

isAstTeardownEnabled

Returns true if AST teardown is enabled for this process.

isBodyStatement

Check if a statement is a (true or false) body of a container‐like parent, such as For, Do‐while, switch, If, Catch, OmpBodyStmt, etc

isCallToParticularFunction

isCanonicalDoLoop

Check if a Fortran Do loop has a complete canonical form: Do I=1, 10, 1

isCanonicalForLoop

Check if a for‐loop has a canonical form, return loop index, bounds, step, and body if requested

isConstType

isConstantFalse

Check if a bool or int constant expression evaluates to be a false value

isConstantTrue

Check if a bool or int constant expression evaluates to be a true value

isCopyConstructible

Is a type copy constructible? This may not quite work properly.

isDataMemberReference

isDefaultConstructible

Is a type default constructible? This may not quite work properly.

isEqualToIntConst

Compare AST nodes, subtree, etc

isEquivalentFunctionType

Test if two types are equivalent SgFunctionType nodes. This is necessary for template function types They may differ in one SgTemplateType pointer but identical otherwise.

isEquivalentType

Test for equivalence of types independent of access permissions (private or protected modes for members of classes).

isExtern

Check if a declaration has an "extern" modifier

isInSubTree

isIndexOperator

Is an overloaded operator an index operator (also referred to as call or subscript operators). (e.g. X & operator()() or X & operator[]).

isLambdaCapturedVariable

check if a variable reference is this‐>a[i]inside of a lambda function

isLambdaFunction

Check if a function declaration is a C++11 lambda function

isLastStatement

Check if a statement is the last statement within its closed scope

isLoopIndexVariable

Check if a SgInitializedName is used as a loop index within a AST subtree This function will use a bottom‐up traverse starting from the subtree_root to find all enclosing loops and check if ivar is used as an index for either of them.

isMain

Check if a SgNode is a main() function declaration

isMemberFunctionMemberReference

isMutable

True if an SgInitializedName is "mutable' (has storage modifier set)

isNonconstReference

Is this type a non‐constant reference type? (Handles typedefs correctly)

isOmpStatement

Check if a node is SgOmp*Statement

isOverloaded

Return true if function is overloaded.

isOverloadedArrowOperator

isOverloadedArrowOperator overloads

isOverloadedArrowOperatorChain

Return true if expr is part of an overloaded operator‐> call chain.

isPointerToNonConstType

Is this a pointer to a non‐const type? Note that this function will return true for const pointers pointing to non‐const types. For example, (int* const y) points to a modifiable int, so this function returns true. Meanwhile, it returns false for (int const * x) and (int const * const x) because these types point to a const int. Also, only the outer layer of nested pointers is unwrapped. So the function returns true for (const int ** y), but returns false for const (int * const * x)

isPointerType

Is this type a pointer type? (Handles typedefs correctly)

isPostfixOperator

Is an overloaded operator a postfix operator. (e.g. ).

isPrefixOperator

isPrefixOperatorName

Check for proper names of possible prefix operators (used in isPrefixOperator()).

isPrototypeInScope

isPureVirtualClass

Check if a class type is a pure virtual class. True means that there is at least one pure virtual function that has not been overridden. In the case of an incomplete class type (forward declaration), this function returns false.

isReferenceType

Is this type a const or non‐const reference type? (Handles typedefs correctly)

isRemovableStatement

isRestrictType

Is this a restrict type?

isSameFunction

Check if two function declarations refer to the same one. Two function declarations are the same when they are a) identical, b) same name in C c) same qualified named and mangled name in C++. A nondefining (prototype) declaration and a defining declaration of a same function are treated as the same.

isScalarType

Is this a scalar type? We define the following SgType as scalar types: char, short, int, long , void, Wchar, Float, double, long long, string, bool, complex, imaginary

isStatic

Check if a declaration has a "static' modifier

isStrictIntegerType

Check if a type is an integral type, only allowing signed/unsigned short, int, long, long long./!/! There is another similar function named SgType::isIntegerType(), which allows additional types char, wchar, and bool to be treated as integer types

isStructDeclaration

Check if a SgNode is a declaration for a structure

isStructType

Check if a type is a struct type (a special SgClassType in ROSE). Typedef and modifier types are not stripped off. Only direct struct type is returned as true.

isStructurallyEquivalentAST

isTemplateInstantiationFromTemplateDeclarationSatisfyingFilter

This function detects template instantiations that are relevant when filters are used.

isTemplateInstantiationNode

isUnionDeclaration

Check if a SgNode is a declaration for a union

isUseByAddressVariableRef

Check if a variable reference is used by its address: including &a expression and foo(a) when type2 foo(Type& parameter) in C++

isVolatileType

Is this a volatile type?

is_C99_language

is_CAF_language

is_C_language

is_Cuda_language

is_Cxx_language

is_Fortran_language

is_OpenCL_language

is_OpenMP_language

is_language_case_insensitive

is_mixed_C_and_Cxx_language

is_mixed_Fortran_and_C_and_Cxx_language

is_mixed_Fortran_and_C_language

is_mixed_Fortran_and_Cxx_language

language_may_contain_nondeclarations_in_scope

lastFrontEndSpecificStatement

lastStatementOfScopeWithTokenInfo

Used to support token unparsing (when the output the trailing token sequence).

listHeaderFiles

return path prefix for subtree of include files.

lookupClassSymbolInParentScopes

lookupEnumSymbolInParentScopes

lookupFunctionSymbolInParentScopes

lookupFunctionSymbolInParentScopes overloads

lookupNamedTypeInParentScopes

Lookup a named type based on its name, bottomup searching from a specified scope. Note name collison might be allowed for c (not C++) between typedef and enum/struct. Only the first matched named type will be returned in this case. typedef is returned as it is, not the base type it actually refers to.

lookupNamespaceSymbolInParentScopes

lookupNonrealSymbolInParentScopes

lookupSymbolInParentScopes

lookupSymbolInParentScopesIgnoringAliasSymbols

utility functions for symbol tables

lookupTemplateClassSymbolInParentScopes

lookupTemplateFunctionSymbolInParentScopes

lookupTemplateMemberFunctionSymbolInParentScopes

lookupTemplateVariableSymbolInParentScopes

lookupTypedefSymbolInParentScopes

lookupVariableSymbolInParentScopes

loopCollapsing

loopInterchange

Interchange/permutate a n‐level perfectly‐nested loop rooted at 'loop' using a lexicographical order number within (0,depth!).

loopTiling

Tile the n‐level (starting from 1) loop of a perfectly nested loop nest using tiling size s

loopUnrolling

Unroll a target loop with a specified unrolling factor. It handles steps larger than 1 and adds a fringe loop if the iteration count is not evenly divisible by the unrolling factor.

makeSingleStatementBodyToBlock

Make a single statement body to be a basic block. Its parent is if, while, catch, etc.

mangleModifierType

Generated mangled modifier types, include const, volatile,according to Itanium C++ ABI.

mangleScalarType

Generate mangled scalar type names according to Itanium C++ ABI, the input type should pass isScalarType() in ROSE

mangleType

Generate a mangled string for a given type based on Itanium C++ ABI

markNodeToBeUnparsed

markSubtreeToBeUnparsed

markSubtreeToBeUnparsedTreeTraversal

mergeAssignmentWithDeclaration

Merge an assignment into its upstream declaration statement. Callers should make sure the merge is semantically correct.

mergeDeclarationAndAssignment

Merge a variable assignment statement into a matching variable declaration statement. Callers should make sure the merge is semantically correct (by not introducing compilation errors). This function simply does the merge transformation, without eligibility check.

mergeDeclarationWithAssignment

Merge a declaration statement into a matching followed variable assignment. Callers should make sure the merge is semantically correct (by not introducing compilation errors). This function simply does the merge transformation, without eligibility check.

moveCommentsToNewStatement

Relocate comments and CPP directives from one statement to another.

moveDeclarationToAssociatedNamespace

Relocate the declaration to be explicitly represented in its associated namespace (required for some backend compilers to process template instantiations).

moveForStatementIncrementIntoBody

movePreprocessingInfo

Move preprocessing information of stmt_src to stmt_dst, Only move preprocessing information from the specified source‐relative position to a specified target position, otherwise move all preprocessing information with position information intact. The preprocessing information is appended to the existing preprocessing information list of the target node by default. Prepending is used if usePreprend is set to true. Optionally, the relative position can be adjust after the moving using dst_position.

moveStatementsBetweenBlocks

moveStatementsBetweenBlocks overloads

moveToSubdirectory

Move file to be generated in a subdirectory (will be generated by the unparser).

moveUpInnerDanglingIfEndifDirective

moveUpPreprocessingInfo

Identical to movePreprocessingInfo(), except for the stale name and confusing order of parameters. It will be deprecated soon.

moveVariableDeclaration

Move a variable declaration to a new scope, handle symbol, special scopes like For loop, etc.

myRemoveStatement

A special purpose statement removal function, originally from inlinerSupport.h, Need Jeremiah's attention to refine it. Please don't use it for now.

normalizeArrowExpWithAddressOfLeftOperand

Convert all code within root matching the patern of (&left)‐>right, and translate them into left.right. Return the number of matches of the pattern. Be default, only transformation generated nodes will be normalized.

normalizeCaseAndDefaultBlocks

Normalize the structure of case and default blocks within a switch statement.

normalizeForLoopIncrement

normalizeForLoopInitDeclaration

Normalize loop init stmt by promoting the single variable declaration statement outside of the for loop header's init statement, e.g. for (int i=0;) becomes int i_x; for (i_x=0;..) and rewrite the loop with the new index variable, if necessary

normalizeForLoopTest

Normalize a for loop's test expression i<x is normalized to i<= (x‐1) and i>x is normalized to i>= (x+1)

outputFileIds

outputGlobalFunctionTypeSymbolTable

Output function type symbols in global function type symbol table.

outputLocalSymbolTables

Output the local symbol tables.

outputSharedNodes

pastePreprocessingInfo

Paste preprocessing information from a buffer to a destination node. Used in combination of cutPreprocessingInfo()

preOrderCollectPreprocessingInfo

prependArg

Prepend an argument to SgFunctionParameterList

prependStatement

prependStatement overloads

prependStatementList

prepend a list of statements to the beginning of the current scope, handling side effects as appropriate

printAST

printAST overloads

printAST2TextFile

printAST2TextFile overloads

printOutComments

querySubTree

Query a subtree to get all nodes of a given type, with an appropriate downcast.

rebuildSymbolTable

Regenerate the symbol table.

recordNormalizations

Record where normalization have been done so that we can preform denormalizations as required for the token‐based unparsing to generate minimal diffs.

recursivePrintCurrentAndParent

Recursively print current and parent nodes. used within gdb to probe the context of a node.

registerAstTeardownAtExit

Register an AST teardown handler to run at process exit if cleanup was not invoked.

registerAstTeardownProject

Record a project for teardown when running exit handlers.

removeAllOriginalExpressionTrees

Set original expression trees to NULL for SgValueExp or SgCastExp expressions, so you can change the value and have it unparsed correctly.

removeConsecutiveLabels

Remove consecutive labels

removeConst

Remove const (if present) from a type. stripType() cannot do this because it removes all modifiers.

removeJumpsToNextStatement

Remove jumps whose label is immediately after the jump. Used to clean up inlined code fragments.

removeLabeledGotos

Remove labeled goto statements

removeStatement

Remove a statement from its attach point of the AST. Automatically keep its associated preprocessing information at the original place after the removal. The statement is still in memory and it is up to the users to decide if the removed one will be inserted somewhere else or released from memory (deleteAST()).

removeUnusedLabels

Remove labels which are not targets of any goto statements: its child statement is also removed by default.

replaceDefiningFunctionDeclarationWithFunctionPrototype

replaceExpression

Replace an expression with another, used for variable reference substitution and others. the old expression can be deleted (default case) or kept.

replaceExpressionWithStatement

Replace a given expression with a list of statements produced by a generator

replaceStatement

Replace a statement with another. Move preprocessing information from oldStmt to newStmt if requested.

replaceSubexpressionWithStatement

Similar to replaceExpressionWithStatement, but with more restrictions. Assumptions: from is not within the test of a loop or ifStmt, not currently traversing from or the statement it is in

replaceVariableReferences

Replace all variable references to an old symbol in a scope to being references to a new symbol.

replaceWithPattern

Replace an anchor node with a specified pattern subtree with optional SgVariantExpression. All SgVariantExpression in the pattern will be replaced with copies of the anchor node.

reportModifiedStatements

resetInternalMapsForTargetStatement

resetMangledNameCache

resetModifiedLocatedNodes

Use the set of IR nodes and set the isModified flag in each IR node to true.

resetScopeNumbers

Assigns unique numbers to each SgScopeStatement of a function.

reset_name_collision_map

Reset map variables used to support generateUniqueNameForUseAsIdentifier() function.

saveToPDF

Save AST into a pdf file. Start from a node to find its enclosing file node. The entire file's AST will be saved into a pdf.

scopeHasStatementsFromSameFile

This function supports the token‐based unparsing when used with unparsing of header files to know when the scope can be unparsed via it's token stream, even though a statement from a header file may contain a transformation. returns true if there is a statement in the scope that has to be unparsed (is from the same file as the scope). returns false if the scope is empty or contains only statements associated with one or more header files.

serialize

we have two serialize() functions, one for a single node, the other for a list of pointers

serialize_list

setBaseTypeDefiningDeclaration

a better version for SgVariableDeclaration::set_baseTypeDefininingDeclaration(), handling all side effects automatically Used to have a struct declaration embedded into a variable declaration

setExtern

Set a declaration as extern

setFortranNumericLabel

Set a numerical label for a Fortran statement. The statement should have a enclosing function definition already. SgLabelSymbol and SgLabelRefExp are created transparently as needed.

setLhsOperand

set left hand operand for binary expressions, transparently downcasting target expressions when necessary

setLoopBody

setLoopCondition

Set the condition statement of a loop, including While‐loop, For‐loop, and Do‐While‐loop.

setLoopLowerBound

Set the lower bound of a loop header for (i=lb; ...)

setLoopStride

Set the stride(step) of a loop 's incremental expression, regardless the expression types (i+=s; i= i+s, etc)

setLoopUpperBound

Set the upper bound of a loop header,regardless the condition expression type. for (i=lb; i op up, ...)

setOneSourcePositionForTransformation

Set current node's source position as transformation generated

setOneSourcePositionNull

Set current node's source position as NULL

setOperand

Set operands for expressions with single operand, such as unary expressions. handle file info, lvalue, pointer downcasting, parent pointer etc.

setParameterList

Set parameter list for a function declaration, considering existing parameter list etc.

setPragma

Set a pragma of a pragma declaration. handle memory release for preexisting pragma, and set parent pointer.

setRhsOperand

set left hand operand for binary expression

setSourcePosition

Set the source code positon for the current (input) node.

setSourcePositionAsTransformation

DQ (5/1/2012): New function with improved name.

setSourcePositionAtRootAndAllChildren

Set the source code positon for the subtree (including the root).

setSourcePositionForTransformation

Recursively set source position info(Sg_File_Info) as transformation generated

setSourcePositionPointersToNull

setStatic

Set a declaration as static

setTemplateParameterKeyword

set_name

set_name of symbol in symbol table.

skipTranslateToUseCppDeclaration

sortSgNodeListBasedOnAppearanceOrderInSource

Reorder a list of declaration statements based on their appearance order in source files

splitExpression

Replace an expression with a temporary variable and an assignment statement

splitExpressionIntoBasicBlock

Split long expressions into blocks of statements

splitVariableDeclaration

splitVariableDeclaration overloads

statementCanBeTransformed

If header file unparsing and token‐based unparsing are used, then some statements in header files used with the same name and different include syntax can't be transformed. This is currently because there is no way to generally test the resulting transformed code generated by ROSE.

suggestNextNumericLabel

Suggest next usable (non‐conflicting) numeric label value for a Fortran function definition scope

tearDownAst

Explicitly tear down an AST and release global caches and memory pools. AST pointers are invalid after this call.

templateArgumentEquivalence

Verify that 2 SgTemplateArgument are equivalent (same type, same expression, or same template declaration)

templateArgumentListEquivalence

Verify that 2 SgTemplateArgumentPtrList are equivalent.

templateDefinitionIsInClass

Return true if template definition is in the class, false if outside of class.

transferSymbols

translateScopeToUseCppDeclarations

translateStatementToUseCppDeclarations

translateToUseCppDeclarations

unnormalizeForLoopInitDeclaration

Undo the normalization of for loop's C99 init declaration. Previous record of normalization is used to ease the reverse transformation.

updateDefiningNondefiningLinks

Update defining and nondefining links due to a newly introduced function declaration. Should be used after inserting the function into a scope. This function not only set the defining and nondefining links of the newly introduced function declaration inside a scope, but also update other same function declarations' links accordingly if there are any. Assumption: The function has already inserted/appended/prepended into the scope before calling this function.

whereAmI

Diagnostic function for tracing back through the parent list to understand at runtime where in the AST a failure happened.

wrapAllTemplateInstantiationsInAssociatedNamespaces

wrapFunction

wrapFunction overloads

Variables

Name

Description

gensym_counter

An internal counter for generating unique SgName

local_name_collision_map

Global map of name collisions to support generateUniqueNameForUseAsIdentifier() function.

local_name_to_node_map

local_node_to_name_map

trans_records

SgNodeHelper namespace

Namespaces

Name

Description

Pattern

Provides functions which match a certain AST pattern and return a pointer to a node of interest inside that pattern.

Types

Name

Description

ExtendedCallInfo

Result structure of extended C++ function call matching matchExtendedNormalizedCall

LineColPair

Functions for simplifying access to SgNode information

OmpSectionList

PragmaList

collects all pragmas with name 'pragmaName' and creates a list of all pragma strings (with stripped off prefix) and the associated SgNode.

Functions

Name

Description

abbreviatedLocationToString

returns location (consisting of filename, line, column) Abbreviates fileName if too long, max file name length can be set

classDeclarationNestingSequence

computes a list representing the nesting structure of classes (including structs and unions). It traverses the AST upwards and collects SgClassDeclaration(s) only. This covers nested classes, nested structs, and nested unions, and combinations of those.

collectPragmaLines

correspondingSgFunctionDefinition

this function should only be called for a node in the subtree of a SgFunctionDefinition node. For a given 'node' it determines the correspondnig functionDefinition node when searching upwards in the AST for such a SgFunctionDefinition node. It is useful as a simple lookup function from inside the AST subtree of a SgFunctionDefinition. Returns 0 if no SgFunctionDefinition is found (e.g. global scope).

determineChildIndex

computes for a given node the index number of it from the parent. e.g. node1(node2,node3,node4) : node4 has index 2 (starting at 0) For the root node of an AST (e.g. SgProject) this function returns ‐1.

determineFunctionDefinition

This function determines for a given function‐call‐expression its corresponding function‐definition (by using get_definingDeclaration). This function has constant complexity. It does not perform a search, but uses the information as present in the AST. If this information is not sufficient to determine the definition of a function it returns 0. For a consistent AST this will find all definitions in the same file, but not in a other SgFile.

determineVariablesInSubtree

determines all VarRefExp in the subtree of 'node'. The order in the vector corresponds to the traversal order on the AST.

doubleQuotedEscapedHTMLString

Same as doubleQuotedEscapedString but also replaces <,<=,>=,> with the corresponding HTML codes. This is required when printing program code inside HTML tables of a dot file.

doubleQuotedEscapedString

computes a new string from s1 where each doublequote is replaced with a backslash followed by the doublequote. This is helpful when printing unparsed program fragments which contain doublequoted strings to a dot file (used by nodeToString). This function also replaces <,<=,>=,> with the corresponding HTML codes.

findFunctionDeclarationWithFunctionSymbol

returns the function declaration statement found for a given function symbol.

findVariableDeclarationWithVariableSymbol

returns the declaration statement found for a given variable symbol.

getCalleeFunctionType

getCalleeOfCall

getClosestParentFunctionDefinitionOfLocatedNode

schroder3 (2016‐07‐22): Returns the closest function definition that contains the given node

getCond

returns the root node representing the AST of the condition of If, While, DoWhile, For, CondOperator, switch.

getExprRootChild

returns the child of SgExpressionRoot (which is guaranteed to be unique and to exist)

getExprStmtChild

returns the child of SgExprStatement (which is guaranteed to be unique and to exist)

getFalseBranch

returns the root node representing the AST of the false branch of If, CondOperator.

getFirstChild

returns the first child of an arbitrary AST node (throws exception if numChildren==0)

getFirstOfBlock

returns the first Statement of SgBasicBlock (throws exception if numChildren==0)

getForIncExpr

returns the incr/derc‐expr of For.

getForInitList

returns the initializer‐list of For.

getFunctionCallActualParameterList

return a function‐call's argument list

getFunctionDefinitionFormalParameterList

return a function‐definition's list of formal paramters

getFunctionName

returns function name of SgFunctionDefinition, SgFunctionDeclaration, SgFunctionCall.

getFunctionReturnType

return a function‐definition's return type

getInitializedNameOfVariableDeclaration

returns the initialized name object of a variable declaration. Otherwise it throws an exception.

getInitializerExpressionOfVariableDeclaration

returns the initializer expression of a variable declaration. If no initializer exists it returns 0.

getInitializerListOfAggregateDeclaration

getLabelName

returns the label name of a SgLabelStatement without trailing ":"

getLastOfBlock

returns the last Statement of SgBasicBlock (throws exception if numChildren==0)

getLhs

return lhs of a binary node (if it is not a binary node it throws an exception)

getLoopBody

returns the root node representing the AST of the loop body of While, DoWhile, For.

getOmpSectionList

getParent

returns the parent of a node. Essentially a wrapper function of the ROSE get_parent() function, but throws an exception if no parent exists. For SgProject node no exception is thrown if no parent exists because it is the root node of a ROSE AST.

getPragmaDeclarationString

return the verbatim pragma string as it is found in the source code this string includes the leading "#pragma".

getReferenceBaseType

getRhs

return rhs of a binary node (if it is not a binary node it throws an exception)

getSymbolOfFunction

returns the SgSymbol* of the function in a SgFunctionRefExp

getSymbolOfFunctionDeclaration

returns the SgSymbol* of the variable in a function declaration

getSymbolOfInitializedName

returns the SgSymbol* of a SgInitializedName

getSymbolOfVariable

returns the SgSymbol* of the variable in a SgVarRefExp

getSymbolOfVariableDeclaration

returns the SgSymbol* of the variable in a variable declaration

getTrueBranch

returns the root node representing the AST of the true branch of If, CondOperator.

getUnaryOpChild

returns the child of a SgUnaryExp (which is guaranteed to be unique and to exist)

hasAssignInitializer

returns true if the declaration has an assign initializer (e.g. char[2]="";)

hasOmpNoWait

Checks if an OpenMP construct is marked with a nowait clause

isAggregateDeclaration

isAggregateDeclarationWithInitializerList

returns true if the declaration has an initializer list (e.g. char[2]={'a',0};

isArrayAccess

isArrayDeclaration

isArrayElementAssignment

checks whether the expression 'node' represents an assignment to an array's element considers all assignment operators and arrays of any size

isAstRoot

checks whether the node 'node' is the root node of the AST by using the get_parent function.

isCallableExpression

isCallableType

isCond

is true if 'node' is the root node of the AST representing the condition of If, While, DoWhile, For, switch, CondExp.

isCondInBranchStmt

is true if 'node' is the root node of the AST representing the condition of If, While, DoWhile, For, switch.

isCondStmt

is true if 'node' is the root node of the AST representing If, While, DoWhile, For, switch.

isCondStmtOrExpr

is true if 'node' is the root node of the AST representing If, While, DoWhile, For, switch, CondExp.

isFloatingPointAssignment

isFloatingPointType

isForIncExpr

determines whether a node is the root node of an AST representing the inc‐expr in a SgForStatement. This function is helpful to deal with this special case in the ROSE AST where an expression does not have a root node which can be easily determined to be a root node of an expression (i.e. here it can be any binary or unary node in constrast to all other expressions in the ROSE AST which are either a SgExprStatement or have a SgExpressionRoot node.

isForwardFunctionDeclaration

Determines whether a provided function declaration is a forward declaration

isFunctionParameterVariableSymbol

checks whether a SgVariableSymbol is representing a function parameter (this does not apply for forward declarations)

isFunctionPointerType

isGlobalVariableDeclaration

isGlobalVariableDeclarationSymbol

Determines if a variable is declared in global name space

isLastChildOf

checks whether 'elem' is the last child (in traversal order) of node 'parent'.

isLoopCond

is true if 'node' is the root node of the AST representing the condition of a Loop construct (While, DoWhile, For).

isLoopStmt

is true if 'node' is the root node of the AST representing a Loop construct (While, DoWhile, For).

isLvalueReferenceType

isPointerType

isPointerVariable

isPostfixIncDecOp

returns true for Expr‐‐ and Expr‐‐, otherwise false;

isPrefix

checks whether prefix 'prefix' is a prefix in string 's'.

isPrefixIncDecOp

returns true for ‐‐Expr and ++Expr, otherwise false.

isReferenceType

isRvalueReferenceType

isTypeEligibleForFunctionToPointerConversion

isVariableSymbolInFunctionForwardDeclaration

checks whether a SgVariableSymbol is representing a variable in

lineColumnAndSourceCodeToString

returns line, column, and unparsed node in one string.

lineColumnNodeToString

lineColumnPair

returns a std::pair of line and column number. If no file info exists at this node it returns (‐1,‐1).

listOfFunctionDeclarations

listOfFunctionDefinitions

listOfGlobalFields

listOfGlobalFunctionDefinitions

identifies the list of SgFunctionDefinitions in global scope Functions/methods of classes are NOT included in this list. Note: static/external can be resolved by further processing those objects

listOfGlobalVars

identifies the list of global variables Note: static/external can be resolved by further processing those objects

listOfSgGlobal

searches in the provided Project for SgGlobal nodes

listOfUsedVarsInFunctions

localVariableDeclarationsOfFunction

returns the set of all local variable‐declarations of a function

locationAndSourceCodeToString

returns location (consisting of filename, line, column) and source code of unparsed node in one string. Abbreviates fileName and unparsed source if too long (defaults are 30,20)

locationToString

returns location (consisting of filename, line, column)

loopRelevantBreakStmtNodes

returns a set of SgNode where each node is a break node, but properly excludes all nested loops.

loopRelevantContinueStmtNodes

matchExtendedNormalizedCall

matches C and C++ function calls (also ctor and dtor)

memberVariableDeclarationsList

Returns for a given class/struct/union a list with the variable declarations of the member variables. Note this is a filtered list returned by the SgType::returnDataMemberPointers function which also returns pointers to methods

nodeCanBeChanged

nodeToString

returns a string representing the node (excluding the subtree)

numChildren

returns the number of children as int (intentionally not as t_size) ensures that the number of children fits into an int, otherwise throws exception.

replaceAstWithString

replaces the ast with root 'node' with the string 's'. The string is attached to the AST and the unparser uses string s instead of unparsing this substree. This function can be used to generate C++ extensions.

replaceExpression

replaces expression e1 by expression e2. Currently it uses the SageInterface::rewriteExpression function but wraps around some addtional checks that significantly improve performance of the replace operation.

replaceString

replace in string 'str' each string 'from' with string 'to'.

scopeNestingLevel

computes for a given node at which scope nesting level this node is in its AST

scopeSequenceNumber

computes for a given node at which scope nesting level this node is in its AST

setCond

sets 'cond' as the root node of the AST representing the condition in statements if, while, dowhile, for, switch.

sourceFilenameLineColumnToString

returns filename+line+column information of AST fragment in format "filename:line:column". Used for generating readable output

sourceFilenameToString

returns filename as stored in AST node. Used for generating readable output.

sourceLineColumnToString

sourceLineColumnToString overloads

sourceLocationAndNodeToString

switchRelevantCaseStmtNodes

collects all case labels from the switch it started in (excludes nested switch stmts). This function also works for Duff's device code where 'case' labels can be inside nested loop/if constructs.

switchRelevantDefaultStmtNode

returns the default stmt if it exists. Otherwise return 0 and can be used to test whether a default stmt exists in a given switch stmt. This function also works for Duff's device code. code where 'default' labels can be inside nested loop/if constructs.

symbolToString

returns name of symbol as string

uniqueLongVariableName

Creates a long unique variable name for a given node of type SgVariableDeclaration or SgVarRefExp

unparseCond

returns the string representing the condition (removes trailing ';')

SgNodeHelper::Pattern namespace

Provides functions which match a certain AST pattern and return a pointer to a node of interest inside that pattern.

Types

Functions

Name

Description

matchAssertExpr

tests pattern for an assert

matchExprStmtAssignOpVarRefExpFunctionCallExp

tests pattern SgExprStatement(SgAssignOp(VarRefExp,FunctionCallExp)) and returns pointer to FunctionCallExp otherwise 0.

matchExprStmtAssignOpVarRefExpFunctionCallExp2

matchExprStmtFunctionCallExp

tests pattern SgExprStatement(FunctionCallExp) and returns pointer to FunctionCallExp, otherwise 0.

matchFunctionCall

tests several patterns and returns pointer to FunctionCallExp inside that matched pattern, otherwise 0.

matchFunctionCallExpInVariableDeclaration

tests pattern for function call in variable declaration and returns pointer to FunctionCallExp otherwise 0.

matchReturnStmtFunctionCallExp

tests pattern SgReturnStmt(FunctionCallExp) and returns pointer to FunctionCallExp, otherwise 0.

matchSingleVarFPrintf

tests pattern SgFunctionCall(...) where the name of the function is fprintf with 3 params

matchSingleVarOrValuePrintf

matchSingleVarPrintf

tests pattern SgFunctionCall(...) where the name of the function is printf with 2 params

matchSingleVarScanf

tests pattern SgFunctionCall(...) where the name of the function is scanf with 2 params

matchVariableDeclarationWithFunctionCall

checks variable declaration with function call, returns variable declaration. Otherwise 0. e.g. int x=f();

matchVariableDeclarationWithFunctionCall2

checks variable declaration with function call, returns both in a pair, or a with (0,0).

StaticCFG namespace

Types

Name

Description

CFG

CFGEdgeAttribute

CFGNodeAttribute

This class stores index of each node as an attribuite of SgGraphNode.

CustomFilteredCFG

A CFG implementation with Custom filters

InterproceduralCFG

Functions

Using Declarations

TransformationTracking namespace

Functions

Name

Description

addInputNode

getFileInfo

getId

getNextId

getNode

hasId

registerAstSubtreeIds

Assign Ids and save current File Info.

setId

Variables

Name

inputIDs

VirtualCFG namespace

Types

Name

Description

CFGEdge

A control flow edge connecting two CFG nodes, with an edge condition to indicate edge types

CFGNode

A node in the control flow graph. Each CFG node corresponds to an AST node, but there can be several CFG nodes for a given AST node.

CFGPath

CfgToDotImpl

DataflowEdge

DataflowNode

FilteredCFGEdge

FilteredCFGNode

InterestingEdge

"Interesting" node and edge filters

InterestingNode

MakeClosure

back_dataflow

back_iterator

cfgRWTransaction

dataflow

iterator

CFGTransform

m_AST2CFG

Enums

Name

Description

EdgeConditionKind

The conditions attached to edges are marked to determine which conditions trigger control to flow along that edge (as opposed to other edges out of the same source node). For conditional branches (except eckCaseLabel and eckDefault), the conditions are implicit and depend on knowledge of the particular control structure. Fortran support for this is underdeveloped; single AST nodes representing variable‐length loops was not part of the original design of the CFG code.

Functions

Name

Description

appendToScopeStmt

cfgBeginningOfConstruct

The first CFG node for a construct (before the construct starts to execute)

cfgEndOfConstruct

The last CFG node for a construct (after the entire construct has finished executing). This node may not actually be reached if, for example, a goto causes a loop to be exited in the middle

cfgIndexForEndWrapper

cfgToDot

Dump the filtered dot graph of a virtual control flow graph starting from SgNode (start)

cfgToDotForDebugging

Dump the full dot graph of a virtual control flow graph starting from SgNode (start)

createFuncCallStmt

createTmpVarInit

defaultFilter

dfaToDot

getCFGTargetOfFortranLabelRef

getCFGTargetOfFortranLabelSymbol

getFileInfo

getFileInfoString

initCFGRewrite

insertAfterExpression

insertAroundForInit

insertBeforeExpression

insertVarDecl

interestingCfgToDot

Dump a CFG with only interesting nodes for a SgNode

isDataflowInteresting

isNonMutatingOperator

isNonMutatingSubTree

makeCfg

Returns CFG node for just before start

makeClosure

makeDataflowCfg

makeEdge

Utility function to make CFG Edges

makeInterestingCfg

mergePaths

mergePathsReversed

prependToScopeStmt

* CALL‐BACK FUNCTIONS FOR cfgRWTransaction::transform() **

printEdge

Edge printer

printNode

Helper function to print Node information

printNodePlusEdges

Print out a node plus all its outgoing edges

replaceExprWithAssignOp

replaceExpressionChecked

replaceStatement

replaceStatementByBlockAfter

replaceStatementByBlockBefore

theInEdge

theOutEdge

varRefFromInitName

varSymFromInitName

Variables

Name

efgh

legacy namespace

Namespaces

Name

PRE

Functions

Name

Description

anyOfListPotentiallyModifiedIn

Are any variables in syms modified anywhere within n, or is n a declaration of one of them?

countComputationsOfExpressionIn

Count how many computations of expr are within root. Same caveats as expressionComputedIn.

expressionComputedIn

Is the expression expr computed within root? This test is simple, and does not account for changes to the variables in expr.

legacy::PRE namespace

Types

Name

Description

myControlFlowGraph

The whole CFG structure, including some external properties

simpleGraph

Graph structure for control flow graphs. Based loosely on BGL graph type.

ControlFlowGraph

Edge

EdgeInsertionPointMap

EdgeIter

EdgeTypeMap

Edges

InEdgeIter

NodeStatementsMap

OutEdgeIter

Vertex

VertexIter

Vertices

Functions

Name

Description

addEdgeInsertionPoints

Add information to each edge on where to insert statements on that edge. The insertion point structure is a pair of (SgNode*, bool), where the bool is true for inserting before the given node and false for inserting after it.

getFunctionDefinition

Get the function definition containing a given node

makeCfg

Make the control flow graph for a given node

partialRedundancyElimination

Do partial redundancy elimination on all functions within the scope n.

partialRedundancyEliminationFunction

Do partial redundancy for all expressions within a given function, whose definition is given in n.

partialRedundancyEliminationOne

Do partial redundancy elimination, looking for copies of one expression expr within the basic block root. A control flow graph for root must be provided in cfg, with a map from nodes to their statements in node_statements, a map from edges to their CFG edge types in edge_type, and a map from edges to their insertion points in edge_insertion_point. The algorithm used is that of Paleri, Srikant, and Shankar ("Partial redundancy elimination: a simple, pragmatic, and provably correct algorithm", Science of Computer Programming 48 (2003) 1‐‐20).

printCfgAsDot

Print out a CFG as a dot file

sg namespace

This namespace contains template functions that operate on the ROSE AST

Types

Name

Description

AncestorTypeFinder

helper class for _ancestor

ConstLike

projects the constness of T1 on T2

ConstLike<T1 const, T2>

DefaultHandler

struct DefaultHandler

DispatchHandler

Base class for any handlers passed to dispatch

DispatchHelper

InitNameCloner

Functor copying an initialized name into a different scope

SageInserter

Generic inserter for sage containers

ScopeSetter

Functor setting the scope of a sage node to a specified (at Functor construction time) scope

TraversalClass

TraversalFunction

executes a functor for a specific node type

TypeRecoveryHandler

VarRefBuilder

Functor building a variable reference from an initialized name

VisitDispatcher

Functions

Name

Description

_ancestor

implements the ancestor search

_dispatch

ancestor

finds an ancestor node with a given type

asBaseType

returns the same node n upcasted to its base type

assert_sage_type

asserts that n has type SageNode

assume_sage_type

unchecked down cast from SgNode to SageNode

cloneNode

returns a deep copy of a sage node

conv

converts object of type E to T via string conversion

createTraversalFunction

creates a functor that executes code for a specific node type

deref

dereferences an object (= checked dereference in debug mode)

dispatch

uncovers the type of SgNode and passes it to an function "handle" in RoseVisitor. which should be overloaded with every possible target node. After the traversal, RoseVisitor should contain the intended return data.

dispatchHelper

forAllNodes

calls fn with all applicable nodes in the AST

linkParentChild

report_error

sage_inserter

generates a SageInserter, adding elements at the end of a sequence

swap_child

swaps children (of equal kind) between two ancestor nodes of the same type

traverseChildren

unexpected_node

unused

portable implementation to avoid compiler warnings for unused parameter.