Packages

package escape

Source
package.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. escape
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait AbstractEscapeAnalysis extends FPCFAnalysis

    An abstract escape analysis for a org.opalj.tac.common.DefinitionSiteLike or a org.opalj.br.analyses.VirtualFormalParameter.

    An abstract escape analysis for a org.opalj.tac.common.DefinitionSiteLike or a org.opalj.br.analyses.VirtualFormalParameter. The entity and all other information required by the analyses such as the defSite, uses or the code correspond to this entity are given as AbstractEscapeAnalysisContext.

    It is assumed that the tac code has a flat hierarchy, i.e. it is real three address code.

    The control-flow is intended to be: Client calls determineEscape. This method extracts the information for the given entity and calls doDetermineEscape.

  2. trait AbstractEscapeAnalysisContext extends AnyRef

    Provides the basic information corresponding to an entity to determine its escape information.

    Provides the basic information corresponding to an entity to determine its escape information. Furthermore, it has helper functions to check whether the entity might be used in expressions.

    See also

    AbstractEscapeAnalysis

  3. trait AbstractEscapeAnalysisState extends AnyRef

    Stores the state associated with a specific AbstractEscapeAnalysisContext computed by an AbstractEscapeAnalysis.

    Stores the state associated with a specific AbstractEscapeAnalysisContext computed by an AbstractEscapeAnalysis. This state contains a set of org.opalj.fpcf.EOptionPs from which the resulting escape state depends. In addition to this, it holds the current most restrictive escape state applicable.

  4. trait AbstractInterProceduralEscapeAnalysis extends AbstractEscapeAnalysis

    Adds inter-procedural behavior to escape analyses.

    Adds inter-procedural behavior to escape analyses. Uses the call graph associated with the Callees properties. It queries the escape state of the org.opalj.br.analyses.VirtualFormalParameter of the targets.

  5. trait ConfigurationBasedConstructorEscapeAnalysis extends AbstractEscapeAnalysis

    In the configuration system it is possible to define escape information for the this local in the constructors of a specific class.

    In the configuration system it is possible to define escape information for the this local in the constructors of a specific class. This analysis sets the org.opalj.br.analyses.VirtualFormalParameter of the this local to the defined value.

  6. trait ConstructorSensitiveEscapeAnalysis extends AbstractEscapeAnalysis

    Special handling for constructor calls, as the receiver of an constructor is always an allocation site.

    Special handling for constructor calls, as the receiver of an constructor is always an allocation site. The constructor of Object does not escape the self reference by definition. For other constructors, the inter-procedural chain will be processed until it reaches the Object constructor or escapes. Is this the case, leastRestrictiveProperty will be set to the lower bound of the current value and the calculated escape state.

    For non constructor calls, org.opalj.br.fpcf.properties.AtMost (org.opalj.br.fpcf.properties.EscapeInCallee) of e will be returned whenever the receiver or a parameter is a use of defSite.

  7. trait DeclaredMethodsContainer extends AnyRef
  8. trait DefaultEscapeAnalysis extends AbstractEscapeAnalysis

    A safe default implementation of the AbstractEscapeAnalysis that uses fallback values.

  9. trait ExceptionAwareEscapeAnalysis extends AbstractEscapeAnalysis

    Handling for exceptions, that are allocated within the current method.

    Handling for exceptions, that are allocated within the current method. Only if the throw stmt leads to an abnormal return in the cfg, the escape state is decreased down to org.opalj.br.fpcf.properties.EscapeViaAbnormalReturn. Otherwise (the exception is caught) the escape state remains the same.

  10. class InterProceduralEscapeAnalysis extends DefaultEscapeAnalysis with AbstractInterProceduralEscapeAnalysis with ConstructorSensitiveEscapeAnalysis with ConfigurationBasedConstructorEscapeAnalysis with SimpleFieldAwareEscapeAnalysis with ExceptionAwareEscapeAnalysis

    A flow-sensitive inter-procedural escape analysis.

  11. class InterProceduralEscapeAnalysisContext extends AbstractEscapeAnalysisContext with PropertyStoreContainer with IsMethodOverridableContainer with VirtualFormalParametersContainer with DeclaredMethodsContainer
  12. sealed trait InterProceduralEscapeAnalysisScheduler extends FPCFAnalysisScheduler
  13. class InterProceduralEscapeAnalysisState extends AbstractEscapeAnalysisState with ReturnValueUseSites
  14. trait IsMethodOverridableContainer extends AnyRef
  15. trait PropertyStoreContainer extends AnyRef
  16. class ReturnValueFreshnessAnalysis extends FPCFAnalysis

    This analysis determines for a given method whether the return value is a fresh object that is created by the method (or its callees) and that does not escape other than org.opalj.br.fpcf.properties.EscapeViaReturn.

    This analysis determines for a given method whether the return value is a fresh object that is created by the method (or its callees) and that does not escape other than org.opalj.br.fpcf.properties.EscapeViaReturn.

    In other words, it aggregates the escape information for allocation-sites that are used as return value.

  17. sealed trait ReturnValueFreshnessAnalysisScheduler extends FPCFAnalysisScheduler
  18. class ReturnValueFreshnessState extends AnyRef
  19. trait ReturnValueUseSites extends AnyRef

    Stores the parameters to which the analyses depends on, and whose functions return value is used any further.

  20. class SimpleEscapeAnalysis extends DefaultEscapeAnalysis with ConstructorSensitiveEscapeAnalysis with ConfigurationBasedConstructorEscapeAnalysis with SimpleFieldAwareEscapeAnalysis with ExceptionAwareEscapeAnalysis

    A simple escape analysis that can handle org.opalj.tac.common.DefinitionSiteLikes and org.opalj.br.analyses.VirtualFormalParameters (the this parameter of a constructor).

  21. class SimpleEscapeAnalysisContext extends AbstractEscapeAnalysisContext with PropertyStoreContainer with VirtualFormalParametersContainer with DeclaredMethodsContainer
  22. trait SimpleEscapeAnalysisScheduler extends FPCFAnalysisScheduler
  23. trait SimpleFieldAwareEscapeAnalysis extends AbstractEscapeAnalysis

    Very simple handling for fields and arrays.

    Very simple handling for fields and arrays. This analysis can detect global escapes via assignments to heap objects. Due to the lack of simple may-alias analysis, this analysis can not determine org.opalj.br.fpcf.properties.NoEscape states.

  24. type V = DUVar[ValueInformation]
  25. trait VirtualFormalParametersContainer extends AnyRef

Inherited from AnyRef

Inherited from Any

Ungrouped