Skip to content

Commit

Permalink
init commit
Browse files Browse the repository at this point in the history
  • Loading branch information
flankerhqd committed Jun 3, 2016
1 parent f1cfcfd commit dba8585
Show file tree
Hide file tree
Showing 4,826 changed files with 911,667 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
*.jar
*.war
*.ear
.idea/
.gradle/
.DS_Store
.config/
.classpath
.project

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
13 changes: 13 additions & 0 deletions Jade-devs.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="Jade-devs" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build" />
<output-test url="file://$MODULE_DIR$/build" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
18 changes: 18 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
task fullBuild(dependsOn: [":jasmin:jasmin-jar",":heros:jar",":soot:fulljar",":soot-infoflow:jar",":soot-infoflow-android:jar"] ) << {
}

task copyCfg(type: Copy) {
from 'jade/config'
into 'jade/build/libs/config'
}
evaluationDependsOn ":jade"
evaluationDependsOn ":jasmin"
evaluationDependsOn ":heros"
evaluationDependsOn ":soot"
evaluationDependsOn ":soot-infoflow"
evaluationDependsOn ":soot-infoflow-android"
project(':jade'){
fatJar.dependsOn(fullBuild)
fatJar.finalizedBy copyCfg
}
//jade.tasks.fatJar.dependsOn fullBuild
157 changes: 157 additions & 0 deletions generated/options/soot/options/ABCOptions.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@

/* 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 Array Bound Checker. */
public class ABCOptions
{
private Map<String, String> options;

public ABCOptions( Map<String, String> options ) {
this.options = options;
}

/** Enabled --
* .
*
*/
public boolean enabled() {
return soot.PhaseOptions.getBoolean( options, "enabled" );
}

/** 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.
*/
public boolean with_all() {
return soot.PhaseOptions.getBoolean( options, "with-all" );
}

/** 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.
*/
public boolean with_cse() {
return soot.PhaseOptions.getBoolean( options, "with-cse" );
}

/** 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.
*/
public boolean with_arrayref() {
return soot.PhaseOptions.getBoolean( options, "with-arrayref" );
}

/** 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.
*/
public boolean with_fieldref() {
return soot.PhaseOptions.getBoolean( options, "with-fieldref" );
}

/** 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.
*/
public boolean with_classfield() {
return soot.PhaseOptions.getBoolean( options, "with-classfield" );
}

/** 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.
*/
public boolean with_rectarray() {
return soot.PhaseOptions.getBoolean( options, "with-rectarray" );
}

/** 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.
*/
public boolean profiling() {
return soot.PhaseOptions.getBoolean( options, "profiling" );
}

/** 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.
*/
public boolean add_color_tags() {
return soot.PhaseOptions.getBoolean( options, "add-color-tags" );
}

}

66 changes: 66 additions & 0 deletions generated/options/soot/options/AETOptions.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@

/* 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 Available Expressions Tagger. */
public class AETOptions
{
private Map<String, String> options;

public AETOptions( Map<String, String> options ) {
this.options = options;
}

/** Enabled --
* .
*
*/
public boolean enabled() {
return soot.PhaseOptions.getBoolean( options, "enabled" );
}

public static final int kind_optimistic = 1;
public static final int kind_pessimistic = 2;
/** Kind --
* .
*
*/
public int kind() {
String s = soot.PhaseOptions.getString( options, "kind" );

if( s.equalsIgnoreCase( "optimistic" ) )
return kind_optimistic;

if( s.equalsIgnoreCase( "pessimistic" ) )
return kind_pessimistic;

throw new RuntimeException( "Invalid value "+s+" of phase option kind" );
}

}

71 changes: 71 additions & 0 deletions generated/options/soot/options/BCMOptions.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@

/* 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 Busy Code Motion. */
public class BCMOptions
{
private Map<String, String> options;

public BCMOptions( Map<String, String> options ) {
this.options = options;
}

/** Enabled --
* .
*
*/
public boolean enabled() {
return soot.PhaseOptions.getBoolean( options, "enabled" );
}

/** Naive Side Effect Tester --
* Use a naive side effect analysis even if interprocedural
* information is available.
* If Naive Side Effect Tester is set to true, Busy Code Motion
* uses the conservative side effect information provided by the
* NaiveSideEffectTester class, even if interprocedural information
* about side effects is available. The naive side effect analysis
* is based solely on the information available locally about a
* statement. It assumes, for example, that any method call has the
* potential to write and read all instance and static fields in
* the program. If Naive Side Effect Tester is set to false and
* Soot is in whole program mode, then Busy Code Motion uses the
* side effect information provided by the PASideEffectTester
* class. PASideEffectTester uses a points-to analysis to determine
* which fields and statics may be written or read by a given
* statement. If whole program analysis is not performed, naive
* side effect information is used regardless of the setting of
* Naive Side Effect Tester.
*/
public boolean naive_side_effect() {
return soot.PhaseOptions.getBoolean( options, "naive-side-effect" );
}

}

Loading

0 comments on commit dba8585

Please sign in to comment.