| OLD | NEW |
| 1 #!/usr/bin/env python2 | 1 #!/usr/bin/env python2 |
| 2 | 2 |
| 3 import argparse | 3 import argparse |
| 4 import os | 4 import os |
| 5 import subprocess | 5 import subprocess |
| 6 import sys | 6 import sys |
| 7 import tempfile | 7 import tempfile |
| 8 | 8 |
| 9 from utils import shellcmd | 9 from utils import shellcmd |
| 10 from utils import FindBaseNaCl | 10 from utils import FindBaseNaCl |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 metavar='DRIVER', | 33 metavar='DRIVER', |
| 34 help='Driver program') | 34 help='Driver program') |
| 35 argparser.add_argument('--target', required=False, default='x8632', | 35 argparser.add_argument('--target', required=False, default='x8632', |
| 36 choices=arch_map.keys(), | 36 choices=arch_map.keys(), |
| 37 metavar='TARGET', | 37 metavar='TARGET', |
| 38 help='Translation target architecture.' + | 38 help='Translation target architecture.' + |
| 39 ' Default %(default)s.') | 39 ' Default %(default)s.') |
| 40 argparser.add_argument('-O', required=False, default='2', dest='optlevel', | 40 argparser.add_argument('-O', required=False, default='2', dest='optlevel', |
| 41 choices=['m1', '-1', '0', '1', '2'], | 41 choices=['m1', '-1', '0', '1', '2'], |
| 42 metavar='OPTLEVEL', | 42 metavar='OPTLEVEL', |
| 43 help='Optimization level ' + | 43 help='Optimization level for llc and Subzero ' + |
| 44 '(m1 and -1 are equivalent).' + | 44 '(m1 and -1 are equivalent).' + |
| 45 ' Default %(default)s.') | 45 ' Default %(default)s.') |
| 46 argparser.add_argument('--clang-opt', required=False, default=True, |
| 47 dest='clang_opt') |
| 46 argparser.add_argument('--mattr', required=False, default='sse2', | 48 argparser.add_argument('--mattr', required=False, default='sse2', |
| 47 dest='attr', choices=['sse2', 'sse4.1'], | 49 dest='attr', choices=['sse2', 'sse4.1'], |
| 48 metavar='ATTRIBUTE', | 50 metavar='ATTRIBUTE', |
| 49 help='Target attribute. Default %(default)s.') | 51 help='Target attribute. Default %(default)s.') |
| 50 argparser.add_argument('--sandbox', required=False, default=0, type=int, | 52 argparser.add_argument('--sandbox', required=False, default=0, type=int, |
| 51 dest='sandbox', | 53 dest='sandbox', |
| 52 help='Use sandboxing. Default "%(default)s".') | 54 help='Use sandboxing. Default "%(default)s".') |
| 53 argparser.add_argument('--prefix', required=True, | 55 argparser.add_argument('--prefix', required=True, |
| 54 metavar='SZ_PREFIX', | 56 metavar='SZ_PREFIX', |
| 55 help='String prepended to Subzero symbol names') | 57 help='String prepended to Subzero symbol names') |
| (...skipping 29 matching lines...) Expand all Loading... |
| 85 target=args.target, sb='sb' if args.sandbox else 'nat', | 87 target=args.target, sb='sb' if args.sandbox else 'nat', |
| 86 opt=args.optlevel, attr=args.attr) | 88 opt=args.optlevel, attr=args.attr) |
| 87 base, ext = os.path.splitext(arg) | 89 base, ext = os.path.splitext(arg) |
| 88 if ext == '.ll': | 90 if ext == '.ll': |
| 89 bitcode = arg | 91 bitcode = arg |
| 90 else: | 92 else: |
| 91 # Use pnacl-clang and pnacl-opt to produce PNaCl bitcode. | 93 # Use pnacl-clang and pnacl-opt to produce PNaCl bitcode. |
| 92 bitcode_nonfinal = os.path.join(args.dir, base + '.' + key + '.bc') | 94 bitcode_nonfinal = os.path.join(args.dir, base + '.' + key + '.bc') |
| 93 bitcode = os.path.join(args.dir, base + '.' + key + '.pnacl.ll') | 95 bitcode = os.path.join(args.dir, base + '.' + key + '.pnacl.ll') |
| 94 shellcmd(['{bin}/pnacl-clang'.format(bin=bindir), | 96 shellcmd(['{bin}/pnacl-clang'.format(bin=bindir), |
| 95 '-O2', '-c', arg, '-o', bitcode_nonfinal]) | 97 ('-O2' if args.clang_opt else '-O0'), '-c', arg, |
| 98 '-o', bitcode_nonfinal]) |
| 96 shellcmd(['{bin}/pnacl-opt'.format(bin=bindir), | 99 shellcmd(['{bin}/pnacl-opt'.format(bin=bindir), |
| 97 '-pnacl-abi-simplify-preopt', | 100 '-pnacl-abi-simplify-preopt', |
| 98 '-pnacl-abi-simplify-postopt', | 101 '-pnacl-abi-simplify-postopt', |
| 99 '-pnaclabi-allow-debug-metadata', | 102 '-pnaclabi-allow-debug-metadata', |
| 100 bitcode_nonfinal, '-S', '-o', bitcode]) | 103 bitcode_nonfinal, '-S', '-o', bitcode]) |
| 101 | 104 |
| 102 base_sz = '{base}.{key}'.format(base=base, key=key) | 105 base_sz = '{base}.{key}'.format(base=base, key=key) |
| 103 asm_sz = os.path.join(args.dir, base_sz + '.sz.s') | 106 asm_sz = os.path.join(args.dir, base_sz + '.sz.s') |
| 104 obj_sz = os.path.join(args.dir, base_sz + '.sz.o') | 107 obj_sz = os.path.join(args.dir, base_sz + '.sz.o') |
| 105 obj_llc = os.path.join(args.dir, base_sz + '.llc.o') | 108 obj_llc = os.path.join(args.dir, base_sz + '.llc.o') |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 sb_native_args = (['-O0', '--pnacl-allow-native', '-arch', 'x8632', | 161 sb_native_args = (['-O0', '--pnacl-allow-native', '-arch', 'x8632', |
| 159 '-Wn,-defsym=__Sz_AbsoluteZero=0'] | 162 '-Wn,-defsym=__Sz_AbsoluteZero=0'] |
| 160 if args.sandbox else | 163 if args.sandbox else |
| 161 ['-g', '-m32', '-lm', '-lpthread', | 164 ['-g', '-m32', '-lm', '-lpthread', |
| 162 '-Wl,--defsym=__Sz_AbsoluteZero=0']) | 165 '-Wl,--defsym=__Sz_AbsoluteZero=0']) |
| 163 shellcmd([compiler, args.driver] + objs + | 166 shellcmd([compiler, args.driver] + objs + |
| 164 ['-o', os.path.join(args.dir, args.output)] + sb_native_args) | 167 ['-o', os.path.join(args.dir, args.output)] + sb_native_args) |
| 165 | 168 |
| 166 if __name__ == '__main__': | 169 if __name__ == '__main__': |
| 167 main() | 170 main() |
| OLD | NEW |