# HG changeset patch # User Doug Simon # Date 1412806830 -7200 # Node ID d42e11af980d289aeabda632930ae041bc8cb1c0 # Parent 58f45b63b80265426f398ac7e4a52b0a7ad149ea mx: simplified ctw command diff -r 58f45b63b802 -r d42e11af980d mx/mx_graal.py --- a/mx/mx_graal.py Thu Oct 09 00:20:19 2014 +0200 +++ b/mx/mx_graal.py Thu Oct 09 00:20:30 2014 +0200 @@ -1358,38 +1358,26 @@ def ctw(args): """run CompileTheWorld""" - from sanitycheck import CTWMode - modes = { - 'noinline' : CTWMode.NoInline, - 'nocomplex' : CTWMode.NoComplex, - 'full' : CTWMode.Full - } - mode = sanitycheck.CTWMode.NoInline - vmargs = [] - for a in args: - m = modes.get(a, None) - if m: - mode = m - else: - vmargs.append(a) + + parser = ArgumentParser(prog='mx ctw') + parser.add_argument('--ctwopts', action='store', help='space separated Graal options (without the -G: prefix) used for CTW compilations') + parser.add_argument('--jar', action='store', help='jar of classes to compiled instead of rt.jar') + parser.add_argument('vmargs', nargs=REMAINDER, metavar='VM options...') + + args, vmargs = parser.parse_known_args(args) - jdk = _jdk(installJars=False) - rtjar = join(jdk, 'jre', 'lib', 'rt.jar') - - vm_ = _get_vm() + if args.ctwopts: + vmargs.append('-G:CompileTheWorldConfig=' + args.ctwopts) - args = vmargs + ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + rtjar] - if vm_ == 'graal': - args += ['-XX:+BootstrapGraal'] - if mode >= CTWMode.NoInline: - if not isGraalEnabled(vm_): - args.append('-XX:-Inline') - else: - args.append('-G:-Inline') - if mode >= CTWMode.NoComplex: - if isGraalEnabled(vm_): - args += ['-G:-OptLoopTransform', '-G:-OptTailDuplication', '-G:-FullUnroll', '-G:-MemoryAwareScheduling', '-G:-NewMemoryAwareScheduling', '-G:-PartialEscapeAnalysis'] - vm(args) + if args.jar: + jar = args.jar + else: + jar = join(_jdk(installJars=False), 'jre', 'lib', 'rt.jar') + + vmargs += ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + jar] + if _get_vm() == 'graal': + vmargs += ['-XX:+BootstrapGraal'] + vm(vmargs) def _basic_gate_body(args, tasks): t = Task('BuildHotSpotGraal: fastdebug,product') @@ -1748,8 +1736,6 @@ benchmarks.append(sanitycheck.getCTW(vm, sanitycheck.CTWMode.Full)) if 'ctw-noinline' in args: benchmarks.append(sanitycheck.getCTW(vm, sanitycheck.CTWMode.NoInline)) - if 'ctw-nocomplex' in args: - benchmarks.append(sanitycheck.getCTW(vm, sanitycheck.CTWMode.NoComplex)) for test in benchmarks: for (groupName, res) in test.bench(vm, extraVmOpts=vmArgs).items(): diff -r 58f45b63b802 -r d42e11af980d mx/sanitycheck.py --- a/mx/sanitycheck.py Thu Oct 09 00:20:19 2014 +0200 +++ b/mx/sanitycheck.py Thu Oct 09 00:20:30 2014 +0200 @@ -264,7 +264,7 @@ return tests class CTWMode: - Full, NoInline, NoComplex = range(3) + Full, NoInline = range(2) def getCTW(vm, mode): time = re.compile(r"CompileTheWorld : Done \([0-9]+ classes, [0-9]+ methods, (?P