From 109691b4765755f5f2be7e50e36f1d0b7d96af9f Mon Sep 17 00:00:00 2001 From: jzhou Date: Thu, 5 Feb 2009 22:51:39 +0000 Subject: [PATCH] add options to close array boundary check in Bamboo --- Robust/src/IR/Flat/BuildCode.java | 5 ++--- Robust/src/IR/State.java | 1 + Robust/src/Main/Main.java | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java index c1e4b6b8..6cc1e6c9 100644 --- a/Robust/src/IR/Flat/BuildCode.java +++ b/Robust/src/IR/Flat/BuildCode.java @@ -2100,7 +2100,7 @@ public class BuildCode { else type=elementtype.getSafeSymbol()+" "; - if (fen.needsBoundsCheck()) { + if (this.state.ARRAYBOUNDARYCHECK && fen.needsBoundsCheck()) { output.println("if ("+generateTemp(fm, fen.getIndex(),lb)+"< 0 || "+generateTemp(fm, fen.getIndex(),lb)+" >= "+generateTemp(fm,fen.getSrc(),lb) + "->___length___)"); output.println("failedboundschk();"); } @@ -2144,8 +2144,7 @@ public class BuildCode { else type=elementtype.getSafeSymbol()+" "; - - if (fsen.needsBoundsCheck()) { + if (this.state.ARRAYBOUNDARYCHECK && fsen.needsBoundsCheck()) { output.println("if ("+generateTemp(fm, fsen.getIndex(),lb)+"< 0 || "+generateTemp(fm, fsen.getIndex(),lb)+" >= "+generateTemp(fm,fsen.getDst(),lb) + "->___length___)"); output.println("failedboundschk();"); } diff --git a/Robust/src/IR/State.java b/Robust/src/IR/State.java index 5ceca0f8..3094fc21 100644 --- a/Robust/src/IR/State.java +++ b/Robust/src/IR/State.java @@ -61,6 +61,7 @@ public class State { public boolean OWNERSHIPWRITEALL=false; public String OWNERSHIPALIASFILE=null; public boolean OPTIONAL=false; + public boolean ARRAYBOUNDARYCHECK=true; public boolean RAW=false; public boolean SCHEDULING=false; public boolean USEPROFILE=false; diff --git a/Robust/src/Main/Main.java b/Robust/src/Main/Main.java index b228cd9f..e976f9e4 100644 --- a/Robust/src/Main/Main.java +++ b/Robust/src/Main/Main.java @@ -129,6 +129,8 @@ public class Main { state.WEBINTERFACE=true; else if (option.equals("-instructionfailures")) state.INSTRUCTIONFAILURE=true; + else if (option.equals("-abcclose")) + state.ARRAYBOUNDARYCHECK=false; else if (option.equals("-help")) { System.out.println("-classlibrary classlibrarydirectory -- directory where classlibrary is located"); System.out.println("-selfloop task -- this task doesn't self loop its parameters forever"); @@ -154,6 +156,7 @@ public class Main { System.out.println("-ownwritedots -- write ownership graphs; can be all results or just final results"); System.out.println("-ownaliasfile -- write a text file showing all detected aliases in program tasks"); System.out.println("-optional -- enable optional arguments"); + System.out.println("-abcclose close the array boundary check"); System.out.println("-scheduling do task scheduling"); System.out.println("-multicore generate multi-core version binary"); System.out.println("-numcore set the number of cores (should be used together with -multicore), defaultly set as 1"); @@ -317,6 +320,7 @@ public class Main { bcm.buildCode(); scheduling = null; } + schedulings = null; selectedScheduling = null; } -- 2.34.1