| Package | Description |
|---|---|
| cetus.analysis | |
| cetus.application | |
| cetus.hir |
| Modifier and Type | Class and Description |
|---|---|
static class |
IPPointsToAnalysis.AbstractLocation
AbstractLocation represents a abstract location that is not referenced to
in terms of a program variable.
|
| Modifier and Type | Field and Description |
|---|---|
static java.util.Set<Symbol> |
IPPointsToAnalysis.return_vars |
| Modifier and Type | Method and Description |
|---|---|
Symbol |
CallSite.argumentToParameter(Expression arg)
Converts the given argument to the corresponding parameter.
|
Symbol |
IPPointsToAnalysis.AbstractLocation.getAllocSymbol()
Returns the IR symbol object that is most representative for the
abstract location.
|
Symbol |
IPPointsToAnalysis.AbstractLocation.getIRSymbol()
Returns the representative symbol for the abstract location.
|
static Symbol |
LoopTools.getLoopIndexSymbol(Loop loop)
Get symbol of loop index, index variable is identified from step
expression for loop
|
Symbol |
PointsToRel.getPointedToSymbol()
Return the tail of the relationship
|
Symbol |
PointsToRel.getPointerSymbol()
Return the head of the relationship
|
| Modifier and Type | Method and Description |
|---|---|
java.util.List<Symbol> |
IPANode.getParameters()
Returns the list of formal parameter symbols.
|
java.util.List<Symbol> |
CallSite.getParameters()
Returns the list of the callee's parameters.
|
java.util.Set<Symbol> |
RangeDomain.getSymbols()
Returns the set of variables whose value ranges are present.
|
| Modifier and Type | Method and Description |
|---|---|
Expression |
RangeDomain.expandSymbol(Expression e,
Symbol var)
Eliminates all occurrences of the specified variable from the expression
by replacing them with their value ranges.
|
java.util.Set |
AliasAnalysis.get_alias_set(Statement cur_stmt,
Symbol symbol)
Returns the alias set for the given input symbol, which includes the
input symbol itself.
|
Expression |
ArrayParameterAnalysis.getCompatibleArgument(FunctionCall fcall,
Symbol param)
Returns caller's expression that is equivalent to the given parameter.
|
Expression |
RangeDomain.getRange(Symbol var)
Returns the value range for the specified variable.
|
boolean |
AliasAnalysis.isAliased(Statement stmt,
Symbol a,
java.util.Set<Symbol> bset)
Returns true if the given Symbol, a, is aliased to any symbol in the
set of Symbols, bset.
|
boolean |
AliasAnalysis.isAliased(Statement stmt,
Symbol a,
Symbol b)
Returns true if Symbol a is aliased to Symbol b at the given statement.
|
boolean |
ArrayParameterAnalysis.isDisjoint(Symbol symbol1,
Symbol symbol2,
Procedure procedure)
Checks if the two symbols are alias-free between themselves.
|
static boolean |
LoopTools.isPrivate(Symbol s,
Loop l)
Check if the input symbol is marked as private to the loop by the
Privatization pass.
|
static boolean |
LoopTools.isReduction(Symbol s,
Loop l)
Check if the input symbol is marked as reduction for the loop by the
Reduction pass.
|
Expression |
CallSite.parameterToArgument(Symbol param)
Converts the given parameter to the corresponding argument.
|
void |
Section.removeAffected(Symbol var)
Removes section elements that contain the specified variable.
|
void |
Section.MAP.removeAffected(Symbol var)
Removes sections that contains the specified symbol.
|
void |
RangeDomain.removeRange(Symbol var)
Removes the value range for the specified variable.
|
void |
RangeDomain.removeRangeWith(Symbol var)
Removes value ranges containing the specified variable including the range
of the variable.
|
Expression |
RangeDomain.replaceSymbol(Expression e,
Symbol var,
Expression with)
Replace all occurrences of the specified variable in the given expression
with the new expression.
|
void |
RangeDomain.replaceSymbol(Symbol var,
Expression with)
Replaces all occurrences of the specified variable in the map with the
given expression.
|
void |
RangeDomain.setRange(Symbol var,
Expression value)
Updates the value range for the specified variable.
|
Expression |
RangeDomain.substituteForward(Expression e,
Symbol var)
Substitute all occurrences of the given symbol in the expression with its
symbolic values.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
Section.containsSymbols(java.util.Set<Symbol> vars)
Checks if the section contains the specified variables.
|
void |
Reduction.displayMap(java.util.Map<Symbol,java.util.Set<java.lang.Integer>> imap,
java.lang.String name) |
void |
Section.expandMay(RangeDomain rd,
java.util.Set<Symbol> vars)
Expand every section under the constraints given by the range domain.
|
void |
Section.expandMust(RangeDomain rd,
java.util.Set<Symbol> ivs,
java.util.Set<Symbol> vars)
Expand every section under the constraints given by the range domain.
|
void |
Section.expandMust(RangeDomain rd,
java.util.Set<Symbol> ivs,
java.util.Set<Symbol> vars)
Expand every section under the constraints given by the range domain.
|
Expression |
RangeDomain.expandSymbols(Expression e,
java.util.Set<Symbol> vars)
Eliminates all occurrences of the specified variables from the expression
by replacing them with their value ranges.
|
boolean |
AliasAnalysis.isAliased(Statement stmt,
Symbol a,
java.util.Set<Symbol> bset)
Returns true if the given Symbol, a, is aliased to any symbol in the
set of Symbols, bset.
|
void |
SetDomain.kill(java.util.Set<Symbol> vars) |
void |
RangeDomain.kill(java.util.Set<Symbol> vars) |
void |
PointsToDomain.kill(java.util.Set<Symbol> vars)
Not supported
|
void |
PointsToDomain.Universe.kill(java.util.Set<Symbol> vars) |
void |
NullDomain.kill(java.util.Set<Symbol> vars) |
void |
Domain.kill(java.util.Set<Symbol> vars)
Kills the data containing the specified set of symbols.
|
void |
RangeDomain.killGlobalAnd(java.util.Set<Symbol> and)
Kills any ranges containing global variables and the specified set of
variables.
|
void |
RangeDomain.killLocalExcept(java.util.Set<Symbol> except)
Kills any ranges containing local variables except for the specified set
of variables.
|
Domain |
PointsToDomain.killSet(java.util.Set<Symbol> exps)
Provides a new Points-to domain that contains all
the pointer relationships for the symbols
provided as input to the kill Set.
|
void |
Section.MAP.removeAffected(java.util.Collection<Symbol> vars)
Removes sections that contains the specified set of variables.
|
void |
RangeDomain.removeRangeWith(java.util.Set<Symbol> vars)
Removes value ranges containing the specified set of symbols.
|
void |
RangeDomain.removeSymbols(java.util.Set<Symbol> vars)
Removes the ranges for the speicfied variables in the map by replacing
them with their value ranges.
|
Expression |
RangeDomain.substituteForward(Expression e,
java.util.Set<Symbol> vars)
Substitute all occrrences of the given set of symbols in the expression.
|
void |
Section.substituteForward(RangeDomain rd,
java.util.Set<Symbol> avoid)
Substitutes any variables having symbolic constant values in the section
avoiding cases that produces expression having a variable in the
"avoid" set.
|
void |
RangeDomain.widenAffectedRanges(RangeDomain other,
java.util.Set<Symbol> vars)
Widens subset of value ranges in "other" that contains the specified
symbols either in keys or in value ranges.
|
| Constructor and Description |
|---|
PointsToRel(Symbol head,
Symbol tail)
Constructor - default false relationship
|
PointsToRel(Symbol head,
Symbol tail,
boolean type)
Constructor
|
Section.MAP(Symbol var,
Section section)
Constructs a map with a pair of variable and section.
|
| Modifier and Type | Method and Description |
|---|---|
static java.util.Set<Symbol> |
ChainTools.getDefSymbol(AnalysisTarget[] defArray,
Procedure proc) |
static java.util.Set<Symbol> |
ChainTools.getDefSymbol(java.util.Set<AnalysisTarget> defSet,
Procedure proc) |
| Constructor and Description |
|---|
PSGReachingDefinitionAnalysis(Program program,
java.util.Map<Procedure,CFGraph> cfgMap,
java.util.Set<Symbol> globalSet,
java.util.Set<AnalysisTarget> globalDefList,
java.util.Set<Procedure> globalDefProcSet) |
PSGUpwardsExposedUsesAnalysis(Program program,
java.util.Map<Procedure,CFGraph> cfgMap,
java.util.Set<Symbol> globalSet,
java.util.Set<AnalysisTarget> globalUseList,
java.util.Set<Procedure> globalUseProcSet) |
| Modifier and Type | Class and Description |
|---|---|
class |
AccessSymbol
AccessSymbol is intended to express an object of AccessExpression as a
Symbol object.
|
class |
DerefSymbol
Class DerefSymbol represents symbol object that does not exist in the
IR as a variable declarator but is accessible through pointer dereferencing.
|
class |
NestedDeclarator
Represents a nested declarator that may contain another declarator within
itself.
|
class |
Procedure
Represents a function, subroutine, or method.
|
class |
ProcedureDeclarator
Represents a declarator for a Procedure in a VariableDeclaration.
|
class |
PseudoSymbol
PseudoSymbol is intended to provide Symbol interface in an
object that is not part of the IR.
|
class |
VariableDeclarator
Represents a declarator for a variable in a VariableDeclaration.
|
| Modifier and Type | Method and Description |
|---|---|
static Symbol |
DerefSymbol.get(Symbol symbol)
Checks if the given symbol produces an deref symbol and returns a
single-depth deref symbol if it does.
|
Symbol |
AccessSymbol.getBaseSymbol()
Returns the base symbol.
|
abstract Symbol |
PseudoSymbol.getIRSymbol()
Returns the most representative symbol object that exist in the IR.
|
Symbol |
DerefSymbol.getIRSymbol()
Returns the IR symbol that represents this deref symbol.
|
Symbol |
AccessSymbol.getIRSymbol()
Returns the IR symbol from which the current symbol is derived.
|
Symbol |
AccessSymbol.getMemberSymbol()
Returns the member symbol.
|
Symbol |
DerefSymbol.getRefSymbol()
Returns the reference symbol (e.g., ref_symbol == &this_deref).
|
Symbol |
Identifier.getSymbol()
Returns the
Symbol object linked with this identifier. |
static Symbol |
Tools.getSymbolOf(Expression e)
Deprecated.
|
static Symbol |
SymbolTools.getSymbolOf(Expression e)
Returns the symbol of the expression if it represents an lvalue.
|
static Symbol |
Tools.getSymbolOfName(java.lang.String name,
Traversable tr)
Deprecated.
|
static Symbol |
SymbolTools.getSymbolOfName(java.lang.String name,
Traversable tr)
Returns the symbol object having the specified string name.
|
Symbol |
DerefSymbol.getVisibleSymbol()
Returns the visible symbol corresponding to this deref symbol.
|
| Modifier and Type | Method and Description |
|---|---|
static java.util.Map<Symbol,java.util.Set<java.lang.Integer>> |
Tools.convertExprMap2SymbolMap(java.util.Map<Expression,java.util.Set<java.lang.Integer>> imap)
Deprecated.
|
static java.util.Map<Symbol,java.util.Set<java.lang.Integer>> |
DataFlowTools.convertExprMap2SymbolMap(java.util.Map<Expression,java.util.Set<java.lang.Integer>> imap) |
static java.util.List<Symbol> |
SymbolTools.exprsToSymbols(java.util.List<Expression> exprs)
Returns a list of symbols by taking symbol object out of the expressions
in the given list.
|
static java.util.Set<Symbol> |
Tools.getAccessedSymbols(Traversable t)
Deprecated.
|
static java.util.Set<Symbol> |
SymbolTools.getAccessedSymbols(Traversable t)
Returns the set of symbols accessed in the traversable object.
|
java.util.List<Symbol> |
VariableDeclaration.getDeclaredSymbols()
Returns the list of symbols being declared within this variable
declaration.
|
static java.util.Set<Symbol> |
Tools.getDefSymbol(Traversable t)
Deprecated.
|
static java.util.Set<Symbol> |
DataFlowTools.getDefSymbol(Traversable t)
Returns a set of defined symbols from the traversable object.
|
static java.util.Map<Symbol,java.util.Set<java.lang.Integer>> |
Tools.getDefSymbolMap(Traversable t)
Deprecated.
|
static java.util.Map<Symbol,java.util.Set<java.lang.Integer>> |
DataFlowTools.getDefSymbolMap(Traversable t) |
static java.util.Set<Symbol> |
Tools.getGlobalSymbols(Traversable t)
Deprecated.
|
static java.util.Set<Symbol> |
SymbolTools.getGlobalSymbols(Traversable t)
Returns the set of Symbol objects that are global variables
of the File scope
|
static java.util.Set<Symbol> |
Tools.getLocalSymbols(Traversable t)
Deprecated.
|
static java.util.Set<Symbol> |
SymbolTools.getLocalSymbols(Traversable t)
Returns the set of symbols declared within the specified traversable
object.
|
static java.util.Set<Symbol> |
Tools.getParameterSymbols(Procedure proc)
Deprecated.
|
static java.util.Set<Symbol> |
SymbolTools.getParameterSymbols(Procedure proc)
Returns the set of Symbol objects that are formal parameters of
the given Procedure
|
static java.util.Set<Symbol> |
Tools.getSideEffectSymbols(FunctionCall fc)
Deprecated.
|
static java.util.Set<Symbol> |
SymbolTools.getSideEffectSymbols(FunctionCall fc) |
java.util.Set<Symbol> |
WhileLoop.getSymbols() |
java.util.Set<Symbol> |
TranslationUnit.getSymbols() |
java.util.Set<Symbol> |
SymbolTable.getSymbols()
Returns the set of declared symbols in the symbol table object.
|
java.util.Set<Symbol> |
Procedure.getSymbols() |
java.util.Set<Symbol> |
Namespace.getSymbols() |
java.util.Set<Symbol> |
LinkageSpecification.getSymbols() |
java.util.Set<Symbol> |
ForLoop.getSymbols() |
java.util.Set<Symbol> |
DoLoop.getSymbols() |
java.util.Set<Symbol> |
CompoundStatement.getSymbols() |
java.util.Set<Symbol> |
ClassDeclaration.getSymbols() |
static java.util.Set<Symbol> |
Tools.getSymbols(SymbolTable st)
Deprecated.
|
static java.util.Set<Symbol> |
SymbolTools.getSymbols(SymbolTable st)
Returns the set of Symbol objects contained in the given SymbolTable
object.
|
static java.util.Set<Symbol> |
Tools.getUseSymbol(Traversable t)
Deprecated.
|
static java.util.Set<Symbol> |
DataFlowTools.getUseSymbol(Traversable t)
Returns a set of used symbols from the traversable object.
|
static java.util.Map<Symbol,java.util.Set<java.lang.Integer>> |
Tools.getUseSymbolMap(Traversable t)
Deprecated.
|
static java.util.Map<Symbol,java.util.Set<java.lang.Integer>> |
DataFlowTools.getUseSymbolMap(Traversable t) |
static java.util.Set<Symbol> |
Tools.getVariableSymbols(SymbolTable st)
Deprecated.
|
static java.util.Set<Symbol> |
SymbolTools.getVariableSymbols(SymbolTable st)
Returns the set of Symbol objects contained in the given SymbolTable
object excluding Procedures.
|
| Modifier and Type | Method and Description |
|---|---|
static boolean |
SymbolTools.containsSpecifier(Symbol symbol,
Specifier spec)
Checks if the specified symbol object contains the given specifier.
|
boolean |
WhileLoop.containsSymbol(Symbol symbol) |
boolean |
TranslationUnit.containsSymbol(Symbol symbol) |
boolean |
SymbolTable.containsSymbol(Symbol symbol)
Checks if the symbol table contains the specified symbol.
|
boolean |
Procedure.containsSymbol(Symbol symbol) |
boolean |
Namespace.containsSymbol(Symbol symbol) |
boolean |
LinkageSpecification.containsSymbol(Symbol symbol) |
boolean |
ForLoop.containsSymbol(Symbol symbol) |
boolean |
DoLoop.containsSymbol(Symbol symbol) |
boolean |
CompoundStatement.containsSymbol(Symbol symbol) |
boolean |
ClassDeclaration.containsSymbol(Symbol symbol) |
static boolean |
Tools.containsSymbol(Traversable t,
Symbol var)
Deprecated.
|
static boolean |
IRTools.containsSymbol(Traversable t,
Symbol var)
Checks if the specified traversable object contains any identifier
derived from the given symbol
var. |
static Symbol |
DerefSymbol.get(Symbol symbol)
Checks if the given symbol produces an deref symbol and returns a
single-depth deref symbol if it does.
|
static ClassDeclaration |
SymbolTools.getClassDeclaration(Symbol symbol,
Traversable tr)
Returns the user-defined class declaration for the given symbol.
|
static java.util.List |
SymbolTools.getNativeSpecifiers(Traversable t,
Symbol symbol)
Returns C-native specifiers for the given symbol.
|
static boolean |
Tools.isArray(Symbol symbol)
Deprecated.
|
static boolean |
SymbolTools.isArray(Symbol symbol)
Checks if the symbol is an array variable.
|
static boolean |
SymbolTools.isFormal(Symbol symbol)
Checks if the given symbol is declared as a formal variable.
|
static boolean |
SymbolTools.isFormal(Symbol symbol,
Procedure proc)
Checks if the given symbol is declared as a formal variable.
|
static boolean |
SymbolTools.isGlobal(Symbol symbol)
Checks if the given symbol is declared as a global variable.
|
static boolean |
Tools.isGlobal(Symbol symbol,
Traversable t)
Deprecated.
|
static boolean |
SymbolTools.isGlobal(Symbol symbol,
Traversable t)
Checks if the symbol is a global variable to the procedure containing the
given traversable object.
|
static boolean |
Tools.isInteger(Symbol symbol)
Deprecated.
|
static boolean |
SymbolTools.isInteger(Symbol symbol)
Checks if the symbol is an interger type variable.
|
static boolean |
SymbolTools.isLocal(Symbol symbol)
Checks if the given symbol is declared as a local variable.
|
static boolean |
SymbolTools.isOrphan(Symbol symbol)
Checks if the given symbol does not belong to the IR tree.
|
static boolean |
Tools.isPointer(Symbol symbol)
Deprecated.
|
static boolean |
SymbolTools.isPointer(Symbol symbol)
Checks if the symbol is a pointer type variable.
|
static boolean |
SymbolTools.isPointerParameter(Symbol param)
Checks if the given symbol is a parameter and a pointer-compatible symbol.
|
static boolean |
Tools.isScalar(Symbol symbol)
Deprecated.
|
static boolean |
SymbolTools.isScalar(Symbol symbol)
Checks if the symbol is a scalar variable.
|
static boolean |
SymbolTools.isStruct(Symbol symbol,
Traversable tr)
Checks if the given symbol is a user-defined struct type.
|
static Expression |
Tools.replaceSymbol(Expression e,
Symbol var,
Expression expr)
Deprecated.
|
static Expression |
IRTools.replaceSymbol(Expression e,
Symbol var,
Expression expr)
Replaces all occurrences of the specified variable
var with the
given expression expr in the input expression e. |
static void |
Tools.replaceSymbolIn(Traversable t,
Symbol var,
Expression e)
Deprecated.
|
static void |
IRTools.replaceSymbolIn(Traversable t,
Symbol var,
Expression e)
Replaces all occurrences of the specified variable
var with the
given expression e in the traversable object t in place. |
static void |
SymbolTools.setSymbolName(Symbol symbol,
java.lang.String name,
SymbolTable symtab)
Renames the specified symbol within the given symbol table object.
|
| Modifier and Type | Method and Description |
|---|---|
static boolean |
Tools.containsSymbols(java.util.Set<Symbol> vars,
java.util.Set<Symbol> symbols)
Deprecated.
|
static boolean |
Tools.containsSymbols(java.util.Set<Symbol> vars,
java.util.Set<Symbol> symbols)
Deprecated.
|
static boolean |
IRTools.containsSymbols(java.util.Set<Symbol> vars,
java.util.Set<Symbol> symbols)
Simple check method for existence of intersection between the two given
sets of symbols.
|
static boolean |
IRTools.containsSymbols(java.util.Set<Symbol> vars,
java.util.Set<Symbol> symbols)
Simple check method for existence of intersection between the two given
sets of symbols.
|
static boolean |
Tools.containsSymbols(Traversable t,
java.util.Set<Symbol> vars)
Deprecated.
|
static boolean |
IRTools.containsSymbols(Traversable t,
java.util.Set<Symbol> vars)
Checks if the specified traversable object contains any identifier
derived from the given set of symbols
vars. |
static Section.MAP |
Tools.getDefSectionMap(Expression e,
RangeDomain rd,
java.util.Set<Symbol> def_vars)
Deprecated.
|
static Section.MAP |
DataFlowTools.getDefSectionMap(Expression e,
RangeDomain rd,
java.util.Set<Symbol> def_vars)
Returns a map from a variable to its section
|
static Section.MAP |
Tools.getDefSectionMap(Traversable t,
java.util.Map range_map,
RangeDomain unioned_rd,
java.util.Set<Symbol> def_vars)
Deprecated.
|
static Section.MAP |
DataFlowTools.getDefSectionMap(Traversable t,
java.util.Map range_map,
RangeDomain unioned_rd,
java.util.Set<Symbol> def_vars)
Returns a set of defined Section expressions in the traversable object.
|
static Section.MAP |
Tools.getUseSectionMap(Expression e,
RangeDomain rd,
java.util.Set<Symbol> def_vars)
Deprecated.
|
static Section.MAP |
DataFlowTools.getUseSectionMap(Expression e,
RangeDomain rd,
java.util.Set<Symbol> def_vars)
Returns a map from a variable to its section
|
static void |
Tools.mergeSymbolMaps(java.util.Map<Symbol,java.util.Set<java.lang.Integer>> orig_map,
java.util.Map<Symbol,java.util.Set<java.lang.Integer>> new_map)
Deprecated.
|
static void |
Tools.mergeSymbolMaps(java.util.Map<Symbol,java.util.Set<java.lang.Integer>> orig_map,
java.util.Map<Symbol,java.util.Set<java.lang.Integer>> new_map)
Deprecated.
|
static void |
DataFlowTools.mergeSymbolMaps(java.util.Map<Symbol,java.util.Set<java.lang.Integer>> orig_map,
java.util.Map<Symbol,java.util.Set<java.lang.Integer>> new_map)
add contents of new_map to orig_map
|
static void |
DataFlowTools.mergeSymbolMaps(java.util.Map<Symbol,java.util.Set<java.lang.Integer>> orig_map,
java.util.Map<Symbol,java.util.Set<java.lang.Integer>> new_map)
add contents of new_map to orig_map
|
| Constructor and Description |
|---|
AccessSymbol(Symbol base,
Symbol member)
Constructs a struct symbol with the given base and member symbol.
|
DerefSymbol(Symbol symbol)
Constructs a new deref symbol from the given reference symbol object.
|
Identifier(Symbol symbol)
Constructs and returns a new Identifier with the given
Symbol object.
|