Package soot.options
Class SIOptions
- java.lang.Object
-
- soot.options.SIOptions
-
@Generated(value="Saxonica v3.0", comments="from soot_options.xml") public class SIOptions extends ObjectOption parser for Static Inliner.
-
-
Field Summary
Fields Modifier and Type Field Description static intallowed_modifier_changes_nonestatic intallowed_modifier_changes_safestatic intallowed_modifier_changes_unsafe
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intallowed_modifier_changes()Allowed Modifier Changes Specify which changes in visibility modifiers are allowed.booleanenabled()Enabledfloatexpansion_factor()Expansion Factor Determines the maximum allowed expansion of a method.booleaninsert_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.booleaninsert_redundant_casts()Insert Redundant Casts Insert extra casts for the Java bytecode verifier.intmax_container_size()Max Container Size Determines the maximum number of Jimple statements for a container method.intmax_inlinee_size()Max Inlinee Size Determines the maximum number of Jimple statements for an inlinee method.booleanrerun_jb()Reconstruct Jimple body after inlining When a method with array parameters is inlined, its variables may need to be assigned different types than they had in the original method to produce compilable code.
-
-
-
Field Detail
-
allowed_modifier_changes_unsafe
public static final int allowed_modifier_changes_unsafe
- See Also:
- Constant Field Values
-
allowed_modifier_changes_safe
public static final int allowed_modifier_changes_safe
- See Also:
- Constant Field Values
-
allowed_modifier_changes_none
public static final int allowed_modifier_changes_none
- See Also:
- Constant Field Values
-
-
Method Detail
-
enabled
public boolean enabled()
Enabled
-
rerun_jb
public boolean rerun_jb()
Reconstruct Jimple body after inlining When a method with array parameters is inlined, its variables may need to be assigned different types than they had in the original method to produce compilable code. When this option is set, Soot re-runs the Jimple Body pack on each method body which has had another method inlined into it so that the typing algorithm can reassign the types.
-
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.
-
-