use of com.jopdesign.common.config.Config.BadConfigurationException in project jop by jop-devel.
the class WCETTool method initialize.
public void initialize(boolean loadLinkInfo, boolean initDFA) throws BadConfigurationException {
if (projectConfig.saveResults()) {
this.resultRecord = projectConfig.getResultFile();
if (!projectConfig.appendResults()) {
// TODO remove existing file if we do not append?
//resultRecord.delete();
recordMetric("problem", this.getProjectName());
if (projectConfig.addPerformanceResults()) {
recordMetric("date", new Date());
}
}
}
if (loadLinkInfo) {
linkerInfo = new LinkerInfo(this);
try {
linkerInfo.loadLinkInfo();
} catch (IOException e) {
throw new BadConfigurationException("Could not load link infos", e);
} catch (ClassNotFoundException e) {
throw new BadConfigurationException("Could not load link infos", e);
}
}
/* run dataflow analysis */
if (doDataflowAnalysis() && initDFA) {
topLevelLogger.info("Starting DFA analysis");
dataflowAnalysis();
topLevelLogger.info("DFA analysis finished");
}
if (!appInfo.hasCallGraph()) {
DefaultCallgraphBuilder callGraphBuilder;
/* build callgraph for the whole program */
if (doDataflowAnalysis()) {
// build the callgraph using DFA results
callGraphBuilder = new DFACallgraphBuilder(getDfaTool(), appInfo.getCallstringLength());
} else {
callGraphBuilder = new DefaultCallgraphBuilder();
}
// we do not want natives in the callgraph
callGraphBuilder.setSkipNatives(true);
appInfo.buildCallGraph(callGraphBuilder);
}
/* build callgraph for target method */
rebuildCallGraph();
if (projectConfig.doPreprocess()) {
WCETPreprocess.preprocess(appInfo);
}
dumpCallGraph("callgraph");
}
use of com.jopdesign.common.config.Config.BadConfigurationException in project jop by jop-devel.
the class WCETTool method onSetupConfig.
@Override
public void onSetupConfig(AppSetup setup) throws BadConfigurationException {
appInfo = setup.getAppInfo();
Config config = setup.getConfig();
projectConfig = new ProjectConfig(config);
projectConfig.initConfig(setup.getMainMethodID());
this.projectName = projectConfig.getProjectName();
if (projectConfig.doGenerateReport()) {
this.results = new Report(this, setup.getLoggerConfig());
try {
this.results.initVelocity();
} catch (Exception e) {
throw new BadConfigurationException("Error initializing Velocity: " + e, e);
}
this.genWCETReport = true;
} else {
this.genWCETReport = false;
}
}
use of com.jopdesign.common.config.Config.BadConfigurationException in project jop by jop-devel.
the class WCETTool method onSetupAppInfo.
@SuppressWarnings({ "LiteralAsArgToStringEquals" })
@Override
public void onSetupAppInfo(AppSetup setup, AppInfo appInfo) throws BadConfigurationException {
if (projectConfig.getProcessorName().equals("allocObjs")) {
this.processor = new ObjectAllocationModel(this);
} else if (projectConfig.getProcessorName().equals("allocHandles")) {
this.processor = new HandleAllocationModel(this);
} else if (projectConfig.getProcessorName().equals("allocHeaders")) {
this.processor = new HeaderAllocationModel(this);
} else if (projectConfig.getProcessorName().equals("allocBlocks")) {
this.processor = new BlockAllocationModel(this);
} else if (projectConfig.getProcessorName().equals("jamuth")) {
this.processor = new JamuthWCETModel(this);
} else if (projectConfig.getProcessorName().equals("JOP")) {
try {
this.processor = new JOPWcetModel(this);
} catch (IOException e) {
throw new BadConfigurationException("Unable to initialize JopWcetModel: " + e.getMessage(), e);
}
} else {
throw new BadConfigurationException("Unknown WCET model: " + projectConfig.getProcessorName());
}
// create output dir only after initialization is successful
File outDir = projectConfig.getProjectDir();
Config.checkDir(outDir, true);
}
Aggregations