soot.options
Class SIOptions
java.lang.Object
|
+--soot.options.SIOptions
- public class SIOptions
- extends java.lang.Object
Option parser for Static Inliner.
Constructor Summary |
SIOptions(java.util.Map options)
|
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
allowed_modifier_changes_unsafe
public static final int allowed_modifier_changes_unsafe
allowed_modifier_changes_safe
public static final int allowed_modifier_changes_safe
allowed_modifier_changes_none
public static final int allowed_modifier_changes_none
SIOptions
public SIOptions(java.util.Map options)
enabled
public boolean enabled()
- Enabled --
.
insert_null_checks
public boolean insert_null_checks()
- Insert Null Checks --
.
Insert, before the inlined body of the target method, a check
that throws a NullPointerException if the receiver object is
null. This ensures that inlining will not eliminate exceptions
which would have occurred in its absence.
insert_redundant_casts
public boolean insert_redundant_casts()
- Insert Redundant Casts --
.
Insert extra casts for the Java bytecode verifier. The
verifier may complain if the inlined method uses this and the
declared type of the receiver of the call being inlined is
different from the type implementing the target method being
inlined. Say, for example, that Singer is an interface declaring
the sing() method and that the call graph shows that all
receiver objects at a particular call site, singer.sing() (with
singer declared as a Singer) are in fact Bird objects (Bird
being a class that implements Singer). The implementation of
Bird.sing() may perform operations on this which are only
allowed on Birds, rather than Singers. The Insert Redundant
Casts option ensures that this cannot lead to verification
errors, by inserting a cast of bird to the Bird type before
inlining the body of Bird.sing().
max_container_size
public int max_container_size()
- Max Container Size --
.
Determines the maximum number of Jimple statements for a
container method. If a method has more than this number of
Jimple statements, then no methods will be inlined into it.
max_inlinee_size
public int max_inlinee_size()
- Max Inlinee Size --
.
Determines the maximum number of Jimple statements for an
inlinee method. If a method has more than this number of Jimple
statements, then it will not be inlined into other methods.
expansion_factor
public float expansion_factor()
- Expansion Factor --
.
Determines the maximum allowed expansion of a method. Inlining
will cause the method to grow by a factor of no more than the
Expansion Factor.
allowed_modifier_changes
public int allowed_modifier_changes()
- Allowed Modifier Changes --
.
Specify which changes in visibility modifiers are allowed.