From a66b37d7aec068bec7244b2bd836b775b6c11e80 Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Tue, 29 Nov 2011 14:50:52 +0000 Subject: [PATCH] Add utils/jscop2cloog.py This tool takes a jscop file and translates it into a cloog input file. llvm-svn: 145401 --- polly/utils/jscop2cloog.py | 68 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 polly/utils/jscop2cloog.py diff --git a/polly/utils/jscop2cloog.py b/polly/utils/jscop2cloog.py new file mode 100755 index 000000000000..668f08509e29 --- /dev/null +++ b/polly/utils/jscop2cloog.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +import argparse, os +import json + +def getDomains(scop): + statements = scop['statements']; + numStatements = len(statements) + + output = "%s\n\n" % str(numStatements) + + for statement in scop['statements']: + output += "%s\n\n" % statement['domain'] + output += "0 0 0 # for future options\n\n" + + + return output + +def getSchedules(scop): + statements = scop['statements']; + numStatements = len(statements) + + output = "%s\n\n" % str(numStatements) + + for statement in scop['statements']: + output += "%s\n\n" % statement['schedule'] + + return output + +def writeCloog(scop): + template = """ +# ---------------------- CONTEXT ---------------------- +c # language is C + +# Context (no constraints on two parameters) +%s + +0 # We do not want to set manually the parameter names + +# --------------------- STATEMENTS -------------------- +%s + +0 # We do not want to set manually the iterator names + +# --------------------- SCATTERING -------------------- +%s + +0 # We do not want to set manually the scattering dimension names +""" + + context = scop['context'] + domains = getDomains(scop) + schedules = getSchedules(scop) + print template % (context, domains, schedules) + +def __main__(): + description = 'Translate JSCoP into iscc input' + parser = argparse.ArgumentParser(description) + parser.add_argument('inputFile', metavar='N', type=file, + help='The JSCoP file') + + args = parser.parse_args() + inputFile = args.inputFile + scop = json.load(inputFile) + + writeCloog(scop) + +__main__() +