diff mx/mx_graal.py @ 17052:35fda668ed6e

mx: added ctw command to simplify executing CompileTheWorld
author Doug Simon <doug.simon@oracle.com>
date Thu, 04 Sep 2014 22:34:03 +0200
parents ffddcdca8e74
children 3e4d3be0b6bf
line wrap: on
line diff
--- a/mx/mx_graal.py	Thu Sep 04 22:33:17 2014 +0200
+++ b/mx/mx_graal.py	Thu Sep 04 22:34:03 2014 +0200
@@ -1331,6 +1331,41 @@
         mx.abort(codeOrMessage)
         return self
 
+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)
+
+    jdk = _jdk(installJars=False)
+    rtjar = join(jdk, 'jre', 'lib', 'rt.jar')
+
+    vm_ = _get_vm()
+
+    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)
+
 def _basic_gate_body(args, tasks):
     t = Task('BuildHotSpotGraal: fastdebug,product')
     buildvms(['--vms', 'graal,server', '--builds', 'fastdebug,product'])
@@ -2248,6 +2283,7 @@
         'c1visualizer' : [c1visualizer, ''],
         'checkheaders': [checkheaders, ''],
         'clean': [clean, ''],
+        'ctw': [ctw, '[-vmoptions|noinline|nocomplex|full]'],
         'findbugs': [findbugs, ''],
         'generateZshCompletion' : [generateZshCompletion, ''],
         'hsdis': [hsdis, '[att]'],