Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  
  /* Soot - a J*va Optimization Framework
   * Copyright (C) 2003 Ondrej Lhotak
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
 
 /* THIS FILE IS AUTO-GENERATED FROM soot_options.xml. DO NOT MODIFY. */
 
 package soot.options;
 import java.util.*;

Option parser for Paddle.
 
 public class PaddleOptions
 {
     private Map options;
 
     public PaddleOptionsMap options ) {
         this. = options;
     }
    
    
Enabled -- .
 
     public boolean enabled() {
         return soot.PhaseOptions.getBoolean"enabled" );
     }
    
    
Verbose -- Print detailed information about the execution of Paddle. When this option is set to true, Paddle prints detailed information about its execution.
 
     public boolean verbose() {
         return soot.PhaseOptions.getBoolean"verbose" );
     }
    
    
Use BDDs -- Use BDD version of Paddle. Causes Paddle to use BDD versions of its components
 
     public boolean bdd() {
         return soot.PhaseOptions.getBoolean"bdd" );
     }
    
    
Dynamic reordering -- . Allows the BDD package to perform dynamic variable ordering.
 
     public boolean dynamic_order() {
         return soot.PhaseOptions.getBoolean"dynamic-order" );
     }
    
    
Profile -- Profile BDDs using JeddProfiler. Turns on JeddProfiler for profiling BDD operations.
 
     public boolean profile() {
         return soot.PhaseOptions.getBoolean"profile" );
     }
    
    
Verbose GC -- Print memory usage at each BDD garbage collection.. Print memory usage at each BDD garbage collection.
 
     public boolean verbosegc() {
         return soot.PhaseOptions.getBoolean"verbosegc" );
     }
    
    
Ignore Types Entirely -- Make Paddle completely ignore declared types of variables. When this option is set to true, all parts of Paddle completely ignore declared types of variables and casts.
    public boolean ignore_types() {
        return soot.PhaseOptions.getBoolean"ignore-types" );
    }
    
    
Pre Jimplify -- Jimplify all methods before starting Paddle. When this option is set to true, Paddle converts all available methods to Jimple before starting the points-to analysis. This allows the Jimplification time to be separated from the points-to time. However, it increases the total time and memory requirement, because all methods are Jimplified, rather than only those deemed reachable by the points-to analysis.
    public boolean pre_jimplify() {
        return soot.PhaseOptions.getBoolean"pre-jimplify" );
    }
    
    
Context-sensitive Heap Locations -- Treat allocation sites context-sensitively. When this option is set to true, the context-sensitivity level that is set for the context-sensitive call graph and for pointer variables is also used to model heap locations context-sensitively. When this option is false, heap locations are modelled context-insensitively regardless of the context-sensitivity level.
    public boolean context_heap() {
        return soot.PhaseOptions.getBoolean"context-heap" );
    }
    
    
RTA -- Emulate Rapid Type Analysis. Setting RTA to true sets types-for-sites to true, and causes Paddle to use a single points-to set for all variables, giving Rapid Type Analysis.
    public boolean rta() {
        return soot.PhaseOptions.getBoolean"rta" );
    }
    
    
Field Based -- Use a field-based rather than field-sensitive representation. When this option is set to true, fields are represented by variable (Green) nodes, and the object that the field belongs to is ignored (all objects are lumped together), giving a field-based analysis. Otherwise, fields are represented by field reference (Red) nodes, and the objects that they belong to are distinguished, giving a field-sensitive analysis.
    public boolean field_based() {
        return soot.PhaseOptions.getBoolean"field-based" );
    }
    
    
Types For Sites -- Represent objects by their actual type rather than allocation site. When this option is set to true, types rather than allocation sites are used as the elements of the points-to sets.
    public boolean types_for_sites() {
        return soot.PhaseOptions.getBoolean"types-for-sites" );
    }
    
    
Merge String Buffer -- Represent all StringBuffers as one object. When this option is set to true, all allocation sites creating java.lang.StringBuffer objects are grouped together as a single allocation site. Allocation sites creating a java.lang.StringBuilder object are also grouped together as a single allocation site.
    public boolean merge_stringbuffer() {
        return soot.PhaseOptions.getBoolean"merge-stringbuffer" );
    }
    
    
Propagate All String Constants -- Propagate all string constants, not just class names. When this option is set to false, Paddle only distinguishes string constants that may be the name of a class loaded dynamically using reflection, and all other string constants are lumped together into a single string constant node. Setting this option to true causes all string constants to be propagated individually.
    public boolean string_constants() {
        return soot.PhaseOptions.getBoolean"string-constants" );
    }
    
    
Simulate Natives -- Simulate effects of native methods in standard class library. When this option is set to true, the effects of native methods in the standard Java class library are simulated.
    public boolean simulate_natives() {
        return soot.PhaseOptions.getBoolean"simulate-natives" );
    }
    
    
Global Nodes in Simulated Natives -- Use global node to model variables in simulations of native methods. The simulations of native methods such as System.arraycopy() use temporary local variable nodes. Setting this switch to true causes them to use global variable nodes instead, reducing precision. The switch exists only to make it possible to measure this effect on precision; there is no other practical reason to set it to true.
    public boolean global_nodes_in_natives() {
        return soot.PhaseOptions.getBoolean"global-nodes-in-natives" );
    }
    
    
Simple Edges Bidirectional -- Equality-based analysis between variable nodes. When this option is set to true, all edges connecting variable (Green) nodes are made bidirectional, as in Steensgaard's analysis.
    public boolean simple_edges_bidirectional() {
        return soot.PhaseOptions.getBoolean"simple-edges-bidirectional" );
    }
    
    
this Pointer Assignment Edge -- Use pointer assignment edges to model this parameters. When constructing a call graph on-the-fly during points-to analysis, Paddle normally propagates only those receivers that cause a method to be invoked to the this pointer of the method. When this option is set to true, however, Paddle instead models flow of receivers as an assignnment edge from the receiver at the call site to the this pointer of the method, reducing precision.
    public boolean this_edges() {
        return soot.PhaseOptions.getBoolean"this-edges" );
    }
    
    
Precise newInstance -- Make newInstance only allocate objects of dynamic classes. Normally, newInstance() calls are treated as if they may return an object of any type. Setting this option to true causes them to be treated as if they return only objects of the type of some dynamic class.
    public boolean precise_newinstance() {
        return soot.PhaseOptions.getBoolean"precise-newinstance" );
    }
    
    
Print Context Counts -- Print number of contexts for each method. Causes Paddle to print the number of contexts for each method and call edge, and the number of equivalence classes of contexts for each variable node.
    public boolean context_counts() {
        return soot.PhaseOptions.getBoolean"context-counts" );
    }
    
    
Print Context Counts (Totals only) -- Print total number of contexts. Causes Paddle to print the number of contexts and number of context equivalence classes.
    public boolean total_context_counts() {
        return soot.PhaseOptions.getBoolean"total-context-counts" );
    }
    
    
Method Context Counts (Totals only) -- Print number of contexts for each method. Causes Paddle to print the number of contexts and number of context equivalence classes split out by method. Requires total-context-counts to also be turned on.
    public boolean method_context_counts() {
        return soot.PhaseOptions.getBoolean"method-context-counts" );
    }
    
    
Calculate Set Mass -- Calculate statistics about points-to set sizes. When this option is set to true, Paddle computes and prints various cryptic statistics about the size of the points-to sets computed.
    public boolean set_mass() {
        return soot.PhaseOptions.getBoolean"set-mass" );
    }
    
    
Number nodes -- Print node numbers in dumps. When printing debug information about nodes, this option causes the node number of each node to be printed.
    public boolean number_nodes() {
        return soot.PhaseOptions.getBoolean"number-nodes" );
    }
    
    
Variable ordering -- . Selects one of the BDD variable orderings hard-coded in Paddle.
    public int order() {
        return soot.PhaseOptions.getInt"order" );
    }
    
    
BDD Nodes -- Number of BDD nodes to allocate (0=unlimited). This option specifies the number of BDD nodes to be used by the BDD backend. A value of 0 causes the backend to start with one million nodes, and allocate more as required. A value other than zero causes the backend to start with the specified size, and prevents it from ever allocating any more nodes.
    public int bdd_nodes() {
        return soot.PhaseOptions.getInt"bdd-nodes" );
    }
    
    
Context length (k) -- . The maximum length of call string or receiver object string used as context.
    public int k() {
        return soot.PhaseOptions.getInt"k" );
    }
    
    public static final int conf_ofcg = 1;
    public static final int conf_cha = 2;
    public static final int conf_cha_aot = 3;
    public static final int conf_ofcg_aot = 4;
    public static final int conf_cha_context_aot = 5;
    public static final int conf_ofcg_context_aot = 6;
    public static final int conf_cha_context = 7;
    public static final int conf_ofcg_context = 8;
    
Configuration -- Select Paddle configuration. Selects the configuration of points-to analysis and call graph construction to be used in Paddle.
    public int conf() {
        String s = soot.PhaseOptions.getString"conf" );
        
        ifs.equalsIgnoreCase"ofcg" ) )
            return ;
        
        ifs.equalsIgnoreCase"cha" ) )
            return ;
        
        ifs.equalsIgnoreCase"cha-aot" ) )
            return ;
        
        ifs.equalsIgnoreCase"ofcg-aot" ) )
            return ;
        
        ifs.equalsIgnoreCase"cha-context-aot" ) )
            return ;
        
        ifs.equalsIgnoreCase"ofcg-context-aot" ) )
            return ;
        
        ifs.equalsIgnoreCase"cha-context" ) )
            return ;
        
        ifs.equalsIgnoreCase"ofcg-context" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option conf" );
    }
    
    public static final int q_auto = 1;
    public static final int q_trad = 2;
    public static final int q_bdd = 3;
    public static final int q_debug = 4;
    public static final int q_trace = 5;
    public static final int q_numtrace = 6;
    
Worklist Implementation -- Select queue implementation. Select the implementation of worklists to be used in Paddle.
    public int q() {
        String s = soot.PhaseOptions.getString"q" );
        
        ifs.equalsIgnoreCase"auto" ) )
            return ;
        
        ifs.equalsIgnoreCase"trad" ) )
            return ;
        
        ifs.equalsIgnoreCase"bdd" ) )
            return ;
        
        ifs.equalsIgnoreCase"debug" ) )
            return ;
        
        ifs.equalsIgnoreCase"trace" ) )
            return ;
        
        ifs.equalsIgnoreCase"numtrace" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option q" );
    }
    
    public static final int backend_auto = 1;
    public static final int backend_buddy = 2;
    public static final int backend_cudd = 3;
    public static final int backend_sable = 4;
    public static final int backend_javabdd = 5;
    public static final int backend_none = 6;
    
Backend -- Select BDD backend. This option tells Paddle which implementation of BDDs to use.
    public int backend() {
        String s = soot.PhaseOptions.getString"backend" );
        
        ifs.equalsIgnoreCase"auto" ) )
            return ;
        
        ifs.equalsIgnoreCase"buddy" ) )
            return ;
        
        ifs.equalsIgnoreCase"cudd" ) )
            return ;
        
        ifs.equalsIgnoreCase"sable" ) )
            return ;
        
        ifs.equalsIgnoreCase"javabdd" ) )
            return ;
        
        ifs.equalsIgnoreCase"none" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option backend" );
    }
    
    public static final int context_insens = 1;
    public static final int context_1cfa = 2;
    public static final int context_kcfa = 3;
    public static final int context_objsens = 4;
    public static final int context_kobjsens = 5;
    public static final int context_uniqkobjsens = 6;
    public static final int context_threadkobjsens = 7;
    
Context abstraction -- Select context-sensitivity level. This option tells Paddle which level of context-sensitivity to use in constructing the call graph.
    public int context() {
        String s = soot.PhaseOptions.getString"context" );
        
        ifs.equalsIgnoreCase"insens" ) )
            return ;
        
        ifs.equalsIgnoreCase"1cfa" ) )
            return ;
        
        ifs.equalsIgnoreCase"kcfa" ) )
            return ;
        
        ifs.equalsIgnoreCase"objsens" ) )
            return ;
        
        ifs.equalsIgnoreCase"kobjsens" ) )
            return ;
        
        ifs.equalsIgnoreCase"uniqkobjsens" ) )
            return ;
        
        ifs.equalsIgnoreCase"threadkobjsens" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option context" );
    }
    
    public static final int propagator_auto = 1;
    public static final int propagator_iter = 2;
    public static final int propagator_worklist = 3;
    public static final int propagator_alias = 4;
    public static final int propagator_bdd = 5;
    public static final int propagator_incbdd = 6;
    
Propagator -- Select propagation algorithm. This option tells Paddle which propagation algorithm to use.
    public int propagator() {
        String s = soot.PhaseOptions.getString"propagator" );
        
        ifs.equalsIgnoreCase"auto" ) )
            return ;
        
        ifs.equalsIgnoreCase"iter" ) )
            return ;
        
        ifs.equalsIgnoreCase"worklist" ) )
            return ;
        
        ifs.equalsIgnoreCase"alias" ) )
            return ;
        
        ifs.equalsIgnoreCase"bdd" ) )
            return ;
        
        ifs.equalsIgnoreCase"incbdd" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option propagator" );
    }
    
    public static final int set_impl_hash = 1;
    public static final int set_impl_bit = 2;
    public static final int set_impl_hybrid = 3;
    public static final int set_impl_array = 4;
    public static final int set_impl_heintze = 5;
    public static final int set_impl_double = 6;
    
Set Implementation -- Select points-to set implementation. Select an implementation of points-to sets for Paddle to use.
    public int set_impl() {
        String s = soot.PhaseOptions.getString"set-impl" );
        
        ifs.equalsIgnoreCase"hash" ) )
            return ;
        
        ifs.equalsIgnoreCase"bit" ) )
            return ;
        
        ifs.equalsIgnoreCase"hybrid" ) )
            return ;
        
        ifs.equalsIgnoreCase"array" ) )
            return ;
        
        ifs.equalsIgnoreCase"heintze" ) )
            return ;
        
        ifs.equalsIgnoreCase"double" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option set-impl" );
    }
    
    public static final int double_set_old_hash = 1;
    public static final int double_set_old_bit = 2;
    public static final int double_set_old_hybrid = 3;
    public static final int double_set_old_array = 4;
    public static final int double_set_old_heintze = 5;
    
Double Set Old -- Select implementation of points-to set for old part of double set. Select an implementation for sets of old objects in the double points-to set implementation. This option has no effect unless Set Implementation is set to double.
    public int double_set_old() {
        String s = soot.PhaseOptions.getString"double-set-old" );
        
        ifs.equalsIgnoreCase"hash" ) )
            return ;
        
        ifs.equalsIgnoreCase"bit" ) )
            return ;
        
        ifs.equalsIgnoreCase"hybrid" ) )
            return ;
        
        ifs.equalsIgnoreCase"array" ) )
            return ;
        
        ifs.equalsIgnoreCase"heintze" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option double-set-old" );
    }
    
    public static final int double_set_new_hash = 1;
    public static final int double_set_new_bit = 2;
    public static final int double_set_new_hybrid = 3;
    public static final int double_set_new_array = 4;
    public static final int double_set_new_heintze = 5;
    
Double Set New -- Select implementation of points-to set for new part of double set. Select an implementation for sets of new objects in the double points-to set implementation. This option has no effect unless Set Implementation is set to double.
    public int double_set_new() {
        String s = soot.PhaseOptions.getString"double-set-new" );
        
        ifs.equalsIgnoreCase"hash" ) )
            return ;
        
        ifs.equalsIgnoreCase"bit" ) )
            return ;
        
        ifs.equalsIgnoreCase"hybrid" ) )
            return ;
        
        ifs.equalsIgnoreCase"array" ) )
            return ;
        
        ifs.equalsIgnoreCase"heintze" ) )
            return ;
        
        throw new RuntimeException"Invalid value "+s+" of phase option double-set-new" );
    }
    
}
        
New to GrepCode? Check out our FAQ X