Changeset 1311 for proto/pebble


Ignore:
Timestamp:
Aug 14, 2011, 1:59:04 PM (8 years ago)
Author:
shermer
Message:

Added lattice package in incode.global
renamed BasicBlockProperty? to DataflowProperty?
Added debugging printing to ErrLog?

Location:
proto/pebble/trunk/src
Files:
6 added
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • proto/pebble/trunk/src/incode/global/Dataflow.java

    r1307 r1311  
    66import incode.Fragment;
    77
    8 public abstract class Dataflow<T extends BasicBlockProperty> {
     8public abstract class Dataflow<T extends DataflowProperty> {
    99        protected static boolean FORWARD = true;
    1010        protected static boolean BACKWARD = true;
     
    6868        final protected void initializeAllBlockProperties(Fragment fragment) {
    6969                for(BasicBlock block: fragment) {
    70                         BasicBlockProperty data = createData(block, work);
     70                        DataflowProperty data = createData(block, work);
    7171                        data.initialize();
    7272                }
     
    7474        final protected void finalizeAllBlockProperties(Fragment fragment) {
    7575                for(BasicBlock block: fragment) {
    76                         BasicBlockProperty data = getDataFrom(block);
     76                        DataflowProperty data = getDataFrom(block);
    7777                        data.finalize();
    7878                }
  • proto/pebble/trunk/src/incode/global/DataflowProperty.java

    r1307 r1311  
    22
    33import java.io.PrintStream;
     4import java.util.List;
    45
    56import incode.BasicBlock;
    67import util.property.Property;
    78
    8 abstract public class BasicBlockProperty implements Property {
     9abstract public class DataflowProperty implements Property {
    910        protected BasicBlock block;
    1011        protected DataflowWorkQueue work;
    1112       
    12         protected BasicBlockProperty(BasicBlock block, DataflowWorkQueue work) {
     13        protected DataflowProperty(BasicBlock block, DataflowWorkQueue work) {
    1314                this.block = block;
    1415                this.work = work;
    1516                attach();
    1617        }
    17 
    1818        public void attach() {
    1919                block.addProperty(this);
    2020        }
     21       
    2122        abstract public void initialize();
    2223        abstract public void finalize();
    2324
    2425        abstract public void diagnosticPrint(PrintStream stream);
     26        protected List<BasicBlock> getPredecessors() {
     27                PredecessorsProperty predProperty = PredecessorsProperty.getFrom(block);
     28                return predProperty.predecessors();
     29        }
    2530
    2631}
  • proto/pebble/trunk/src/incode/global/LivenessProperty.java

    r1309 r1311  
    66import java.io.PrintStream;
    77import java.util.HashSet;
    8 import java.util.List;
    98import java.util.Set;
    109
    11 public class LivenessProperty  extends BasicBlockProperty  {
     10public class LivenessProperty  extends DataflowProperty  {
    1211        public static final String PROPERTY_NAME = "Liveness";
    1312        @Override
     
    110109                newLiveIn.clear();
    111110        }
    112         private List<BasicBlock> getPredecessors() {
    113                 PredecessorsProperty predProperty = PredecessorsProperty.getFrom(block);
    114                 return predProperty.predecessors();
    115         }
    116111        void addVariablesToLiveOut(Set<String> variables) {
    117112                for(String var: variables) {
  • proto/pebble/trunk/src/incode/global/ReachingProperty.java

    r1308 r1311  
    1212import incode.Instruction;
    1313
    14 public class ReachingProperty extends BasicBlockProperty {
     14public class ReachingProperty extends DataflowProperty {
    1515        public static final String PROPERTY_NAME = "ReachingDefinitions";
    1616        @Override
  • proto/pebble/trunk/src/util/error/ErrLog.java

    r1287 r1311  
    11package util.error;
     2
     3import java.io.PrintStream;
     4import java.io.UnsupportedEncodingException;
    25
    36public class ErrLog {
    47        static private boolean hasError = false;
    5        
     8        private boolean debug = false;
     9
     10        static PrintStream errOut;
     11        static {
     12                try {
     13                        errOut = new PrintStream(System.out, true, "UTF-8");
     14                } catch (UnsupportedEncodingException e) {
     15                        // TODO Auto-generated catch block
     16                        e.printStackTrace();
     17                }
     18        }
     19
    620        public static void reportError(String s) {
    721                hasError = true;
    8                 System.err.println("error: " + s);
     22                errOut.println("error: " + s);
    923        }       
    1024        public static void reportCompilerError(String s) {
    1125                hasError = true;
    12                 System.err.println("compiler error: " + s);
     26                errOut.println("compiler error: " + s);
    1327        }
    1428        public static void reportFatalError(String s) {
    1529                hasError = true;
    16                 System.err.println("error: " + s);
     30                errOut.println("error: " + s);
    1731                System.exit(1);
    1832        }
     
    2034                return hasError;
    2135        }
     36       
     37       
     38       
     39        ///////////////////////////////////////////////////////
     40        // printing for debugging...uses errOut.
     41        ///////////////////////////////////////////////////////
     42       
     43        public boolean isDebug() {
     44                return debug;
     45        }
     46        public void setDebug(boolean debug) {
     47                this.debug = debug;
     48        }
     49        public static void diag(String s) {
     50                errOut.println(s);
     51        }
     52        public static void diag(String format, Object...args) {
     53                String s = String.format(format, args);
     54                errOut.println(s);
     55        }
    2256}
Note: See TracChangeset for help on using the changeset viewer.