state.MULTICORE=true;
else if (option.equals("-multicoregc"))
state.MULTICOREGC=true;
+ else if (option.equals("-pmc"))
+ state.PMC=true;
else if (option.equals("-mgc")) {
state.MGC = true;
} else if (option.equals("-objectlockdebug")) {
state.POINTSTO_CHECK_V_RUNTIME = true;
+ } else if( option.equals("-do-definite-reach-analysis") ) {
+ state.DO_DEFINITE_REACH_ANALYSIS = true;
+
+
+ } else if( option.equals("-disjoint-disable-global-sweep") ) {
+ state.DISJOINT_USE_GLOBAL_SWEEP = false;
+
+ } else if( option.equals("-disjoint-disable-strong-update") ) {
+ state.DISJOINT_USE_STRONG_UPDATE = false;
+
+ } else if( option.equals("-disjoint-disable-predicates") ) {
+ state.DISJOINT_USE_PREDICATES = false;
+
+ } else if( option.equals("-disjoint-summarize-per-class") ) {
+ state.DISJOINT_SUMMARIZE_PER_CLASS = true;
+
+
+ } else if( option.equals("-disjoint-count-visits") ) {
+ state.DISJOINT_COUNT_VISITS = true;
+
+ } else if( option.equals("-disjoint-count-graph-elements") ) {
+ state.DISJOINT_COUNT_GRAPH_ELEMENTS = true;
+ state.DISJOINT_COUNT_GRAPH_ELEMENTS_FILE = args[++i];
+
} else if (option.equals("-optional"))
state.OPTIONAL=true;
else if (option.equals("-optimize"))
state.KEEP_RG_FOR_ALL_PROGRAM_POINTS=true;
} else if (option.equals("-nostalltr")) {
state.NOSTALLTR = true;
+
} else if (option.equals("-ssjava")) {
state.SSJAVA = true;
- } else if (option.equals("-printlinenum")) {
+ state.SSJAVA_GENCODE_PREVENT_CRASHES = true;
+
+ } else if (option.equals("-ssjavadebug")) {
+ state.SSJAVADEBUG = true;
+ } else if (option.equals("-ssjavainfer")) {
+ state.SSJAVAINFER= true;
+ } else if( option.equals( "-ssjava-inject-error" ) ) {
+ state.SSJAVA_GENCODE_PREVENT_CRASHES = true;
+ state.SSJAVA_INJECT_ERROR = true;
+ state.SSJAVA_INV_ERROR_PROB = Integer.parseInt( args[++i] );
+ state.SSJAVA_ERROR_SEED = Integer.parseInt( args[++i] );
+
+ // special case, if the inverse prob is 0, turn off errors
+ if( state.SSJAVA_INV_ERROR_PROB == 0 ) {
+ state.SSJAVA_INJECT_ERROR = false;
+ }
+
+
+ }else if (option.equals("-printlinenum")) {
state.LINENUM=true;
} else if (option.equals("-help")) {
System.out.println("-classlibrary classlibrarydirectory -- directory where classlibrary is located");
State.logEvent("Done Parsing Commands");
System.out.println("Classpath: "+state.classpath);
- SSJavaAnalysis ssjava=new SSJavaAnalysis(state);
+
TypeUtil tu;
BuildFlat bf;
CallGraph callgraph=jb!=null?jb:(state.TASK?new BaseCallGraph(state, tu):new JavaCallGraph(state, tu));
// SSJava
+ SSJavaAnalysis ssjava=new SSJavaAnalysis(state,tu,bf,callgraph);
if(state.SSJAVA) {
ssjava.doCheck();
State.logEvent("Done SSJava Checking");
continue;
cp.optimize(fm);
dc.optimize(fm);
- if (!state.NOLOOP)
+ if (!state.NOLOOP){
+ lo.analyze(fm);
lo.optimize(fm);
+ }
+
+
cp.optimize(fm);
dc.optimize(fm);
lcse.doAnalysis(fm);
}
}
State.logEvent("Done Optimizing");
+
}
if (state.FLATIRGRAPH) {
bc.registerExtension( bcx );
}
+ if( state.SSJAVA_INJECT_ERROR ) {
+ BCXSSJavaInjectError bcx = new BCXSSJavaInjectError( state, bc );
+ bc.registerExtension( bcx );
+ }
+
bc.buildCode();
State.logEvent("Done With BuildCode");
public static ParseNode readSourceFile(State state, String sourcefile) {
try {
Reader fr= new BufferedReader(new FileReader(sourcefile));
- Lex.Lexer l = new Lex.Lexer(fr, state.TASK);
+ Lex.Lexer l = new Lex.Lexer(fr, state.TASK, state.DSM);
java_cup.runtime.lr_parser g;
g = new Parse.Parser(l);
ParseNode p=null;