llvmpy/tools/intrgen.py
Siu Kwan Lam d1bcdd05d1 add NVPTX for LLVM 3.2;
auto-gen _intrinsic_ids.py  in setup.py;
2012-08-18 15:29:26 -07:00

33 lines
831 B
Python
Executable file

#!/usr/bin/env python
#
# Script to generate intrinsic IDs (found in core.py) from
# <llvm>/include/llvm/Intrinsics.gen. Call with path to the
# latter.
import sys
def gen(f, out=sys.stdout):
intr = []
maxw = 0
flag = False
for line in open(f):
if line.startswith('#ifdef GET_INTRINSIC_ENUM_VALUES'):
flag = True
elif flag:
if line.startswith('#endif'):
break
else:
item = line.split()[0].replace(',', '')
if len(item) > maxw:
maxw = len(item)
intr.append(item)
maxw = len('INTR_') + maxw
idx = 1
for i in intr:
s = 'INTR_' + i.upper()
out.write('%s = %d\n' % (s.ljust(maxw), idx))
idx += 1
if __name__ == '__main__':
gen(sys.argv[1])