• Home
  • Raw
  • Download

Lines Matching +full:clang +full:- +full:format

14     """Builds a cross-test binary for comparing Subzero and llc translation.
16 Each --test argument is compiled once by llc and once by Subzero. C/C++
17 tests are first compiled down to PNaCl bitcode using pnacl-clang and
18 pnacl-opt. The --prefix argument ensures that symbol names are different
21 There is also a --driver argument that specifies the C/C++ file that calls
33 # For ARM, test a large stack offset as well. +/- 4095 is
35 'arm32': ['--test-stack-extra', '4084'],
36 'mips32': ['--test-stack-extra', '4084']
39 # Use sse2 instructions regardless of input -mattr
42 'x8632': ['-mattr=sse2'],
43 'x8664': ['-mattr=sse2'],
47 desc = 'Build a cross-test that compares Subzero and llc translation.'
49 argparser.add_argument('--test', required=True, action='append',
52 argparser.add_argument('--driver', required=True,
55 argparser.add_argument('--target', required=False, default='x8632',
60 argparser.add_argument('-O', required=False, default='2', dest='optlevel',
61 choices=['m1', '-1', '0', '1', '2'],
64 '(m1 and -1 are equivalent).' +
66 argparser.add_argument('--clang-opt', required=False, default=True,
68 argparser.add_argument('--mattr', required=False, default='sse2',
70 'neon', 'hwdiv-arm',
74 argparser.add_argument('--sandbox', required=False, default=0, type=int,
77 argparser.add_argument('--nonsfi', required=False, default=0, type=int,
79 help='Use Non-SFI mode. Default "%(default)s".')
80 argparser.add_argument('--prefix', required=True,
83 argparser.add_argument('--output', '-o', required=True,
86 argparser.add_argument('--dir', required=False, default='.',
90 argparser.add_argument('--filetype', default='obj', dest='filetype',
93 argparser.add_argument('--sz', dest='sz_args', action='append', default=[],
94 help='Extra arguments to pass to pnacl-sz.')
99 .format(root=nacl_root))
106 llc_flags.extend(['-relocation-model=pic',
107 '-malign-double',
108 '-force-tls-non-pic',
109 '-mtls-use-call'])
114 key = '{sb}.O{opt}.{attr}.{target}'.format(
124 # Use pnacl-clang and pnacl-opt to produce PNaCl bitcode.
127 shellcmd(['{bin}/pnacl-clang'.format(bin=bindir),
128 ('-O2' if args.clang_opt else '-O0'),
129 ('-DARM32' if args.target == 'arm32' else ''), '-c', arg,
130 ('-DMIPS32' if args.target == 'mips32' else ''),
131 '-o', bitcode_nonfinal])
132 shellcmd(['{bin}/pnacl-opt'.format(bin=bindir),
133 '-pnacl-abi-simplify-preopt',
134 '-pnacl-abi-simplify-postopt',
135 '-pnaclabi-allow-debug-metadata',
136 '-strip-metadata',
137 '-strip-module-flags',
138 '-strip-debug',
139 bitcode_nonfinal, '-S', '-o', bitcode])
141 base_sz = '{base}.{key}'.format(base=base, key=key)
146 shellcmd(['{path}/pnacl-sz'.format(path=os.path.dirname(mypath)),
148 '-O' + args.optlevel,
149 '-mattr=' + args.attr,
150 '--target=' + args.target,
151 '--sandbox=' + str(args.sandbox),
152 '--nonsfi=' + str(args.nonsfi),
153 '--prefix=' + args.prefix,
154 '-allow-uninitialized-globals',
155 '-externalize',
156 '-filetype=' + args.filetype,
157 '-o=' + (obj_sz if args.filetype == 'obj' else asm_sz),
160 shellcmd(['{bin}/llvm-mc'.format(bin=bindir),
161 '-triple=' + ('mipsel-linux-gnu'
164 '-filetype=obj',
165 '-o=' + obj_sz,
177 shellcmd(['{bin}/{objcopy}'.format(bin=bindir,
179 '--weaken-symbol=__Sz_block_profile_info',
180 '--weaken-symbol=__Sz_revision',
181 '--strip-symbol=nacl_tp_tdb_offset',
182 '--strip-symbol=nacl_tp_tls_offset',
185 shellcmd(['{bin}/pnacl-llc'.format(bin=bindir),
186 '-mtriple=' + triple,
187 '-externalize',
188 '-filetype=obj',
189 '-bitcode-format=llvm',
190 '-o=' + obj_llc,
194 shellcmd(['{bin}/{objcopy}'.format(bin=bindir,
197 [('--strip-symbol=' + sym) for sym in strip_syms])
205 ).format(root=nacl_root,
211 target_params.append('-DARM32')
212 target_params.append('-static')
215 target_params.append('-DMIPS32')
219 # Set compiler to clang, clang++, pnacl-clang, or pnacl-clang++.
220 compiler = '{bin}/{prefix}{cc}'.format(
221 bin=bindir, prefix=get_sfi_string(args, 'pnacl-', '', ''),
222 cc='clang' if pure_c else 'clang++')
223 sb_native_args = (['-O0', '--pnacl-allow-native',
224 '-arch', target_info.compiler_arch,
225 '-Wn,-defsym=__Sz_AbsoluteZero=0']
227 ['-g', '-target=' + triple,
228 '-lm', '-lpthread',
229 '-Wl,--defsym=__Sz_AbsoluteZero=0'] +
232 ['-o', os.path.join(args.dir, args.output)] + sb_native_args)
240 compiler = '{bin}/{prefix}{cc}'.format(
241 bin=bindir, prefix='pnacl-',
242 cc='clang' if pure_c else 'clang++')
245 '-O2',
246 '-o', bitcode_nonfinal,
247 '-Wl,-r'
249 shellcmd(['{bin}/pnacl-opt'.format(bin=bindir),
250 '-pnacl-abi-simplify-preopt',
251 '-pnacl-abi-simplify-postopt',
252 '-pnaclabi-allow-debug-metadata',
253 '-strip-metadata',
254 '-strip-module-flags',
255 '-strip-debug',
256 '-disable-opt',
257 bitcode_nonfinal, '-S', '-o', bitcode])
258 shellcmd(['{bin}/pnacl-llc'.format(bin=bindir),
259 '-mtriple=' + triple,
260 '-externalize',
261 '-filetype=obj',
262 '-O2',
263 '-bitcode-format=llvm',
264 '-o', obj_llc,
267 shellcmd(['{bin}/{objcopy}'.format(bin=bindir,
269 '--redefine-sym', '_start=_user_start',