mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 06:10:12 +00:00
Add utils/jscop2cloog.py
This tool takes a jscop file and translates it into a cloog input file. llvm-svn: 145401
This commit is contained in:
parent
1e06003227
commit
a66b37d7ae
68
polly/utils/jscop2cloog.py
Executable file
68
polly/utils/jscop2cloog.py
Executable file
@ -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__()
|
||||
|
Loading…
Reference in New Issue
Block a user