Package soot.options
Class ABCOptions
- java.lang.Object
-
- soot.options.ABCOptions
-
@Generated(value="Saxonica v3.0", comments="from soot_options.xml") public class ABCOptions extends ObjectOption parser for Array Bound Checker.
-
-
Constructor Summary
Constructors Constructor Description ABCOptions(Map<String,String> options)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd_color_tags()Add Color Tags -- Add color tags to results of array bound check analysis.booleanenabled()Enabledbooleanprofiling()Profiling -- Profile the results of array bounds check analysis.booleanwith_all()With All Setting the With All option to true is equivalent to setting each of With CSE, With Array Ref, With Field Ref, With Class Field, and With Rectangular Array to true.booleanwith_arrayref()With Array References With this option enabled, array references can be considered as common subexpressions; however, we are more conservative when writing into an array, because array objects may be aliased.booleanwith_classfield()With Class Field This option makes the analysis work on the class level.booleanwith_cse()With Common Sub-expressions The analysis will consider common subexpressions.booleanwith_fieldref()With Field References The analysis treats field references (static and instance) as common subexpressions; however, we are more conservative when writing to a field, because the base of the field reference may be aliased.booleanwith_rectarray()With Rectangular Array This option is used together with wjap.ra to make Soot run the whole-program analysis for rectangular array objects.
-
-
-
Method Detail
-
enabled
public boolean enabled()
Enabled
-
with_all
public boolean with_all()
With All Setting the With All option to true is equivalent to setting each of With CSE, With Array Ref, With Field Ref, With Class Field, and With Rectangular Array to true.
-
with_cse
public boolean with_cse()
With Common Sub-expressions The analysis will consider common subexpressions. For example, consider the situation where r1 is assigned a*b; later, r2 is assigned a*b, where neither a nor b have changed between the two statements. The analysis can conclude that r2 has the same value as r1. Experiments show that this option can improve the result slightly.
-
with_arrayref
public boolean with_arrayref()
With Array References With this option enabled, array references can be considered as common subexpressions; however, we are more conservative when writing into an array, because array objects may be aliased. We also assume that the application is single-threaded or that the array references occur in a synchronized block. That is, we assume that an array element may not be changed by other threads between two array references.
-
with_fieldref
public boolean with_fieldref()
With Field References The analysis treats field references (static and instance) as common subexpressions; however, we are more conservative when writing to a field, because the base of the field reference may be aliased. We also assume that the application is single-threaded or that the field references occur in a synchronized block. That is, we assume that a field may not be changed by other threads between two field references.
-
with_classfield
public boolean with_classfield()
With Class Field This option makes the analysis work on the class level. The algorithm analyzes final or private class fields first. It can recognize the fields that hold array objects of constant length. In an application using lots of array fields, this option can improve the analysis results dramatically.
-
with_rectarray
public boolean with_rectarray()
With Rectangular Array This option is used together with wjap.ra to make Soot run the whole-program analysis for rectangular array objects. This analysis is based on the call graph, and it usually takes a long time. If the application uses rectangular arrays, these options can improve the analysis result.
-
profiling
public boolean profiling()
Profiling -- Profile the results of array bounds check analysis. Profile the results of array bounds check analysis. The inserted profiling code assumes the existence of a MultiCounter class implementing the methods invoked. For details, see the ArrayBoundsChecker source code.
-
add_color_tags
public boolean add_color_tags()
Add Color Tags -- Add color tags to results of array bound check analysis. Add color tags to the results of the array bounds check analysis.
-
-