diff c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java @ 1429:abc670a709dc

* -XX:TraceC1X=0...5 controls the native c1x tracing * -Dc1x.debug=true turns on the logging proxies and lots of log output on the java side * provide more information about types to the compiler (type hierarchy, etc) * provide exception handler tables to the compiler * add exception handlers to the nmethod * correct implementation of ExceptionObject * exception handling/unwinding entry points * modified versions of handle/unwind exception stubs using standard calling conventions * exception throwing * implicit null pointer exception, implicit div by 0 exception * arraystore/classcast/arrayindex exceptions * checkcast implementation * newarray, anewarray, multinewarray implementation * correct new instance initialization * access to java class mirrors (for ldc) * unresolved methods * class resolving - class patching (asssembly prototype copying)
author Lukas Stadler <lukas.stadler@oracle.com>
date Tue, 31 Aug 2010 22:13:30 -0700
parents 760213a60e8b
children efba53f86c4f
line wrap: on
line diff
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java	Thu Aug 19 14:34:52 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java	Tue Aug 31 22:13:30 2010 -0700
@@ -62,8 +62,10 @@
     public static VMEntries getVMEntries() {
         if (vmEntries == null) {
             try {
-                vmEntries = LoggingProxy.getProxy(VMEntries.class, new VMEntriesNative());
-                // vmEntries = new VMEntriesNative();
+                if (Logger.ENABLED)
+                    vmEntries = LoggingProxy.getProxy(VMEntries.class, new VMEntriesNative());
+                else
+                    vmEntries = new VMEntriesNative();
             } catch (Throwable t) {
                 t.printStackTrace();
             }
@@ -86,12 +88,14 @@
                     ReplacingInputStream input = new ReplacingInputStream(socket.getInputStream());
 
                     InvocationSocket invocation = new InvocationSocket(output, input);
-                    VMExits exits = (VMExits)Proxy.newProxyInstance(VMExits.class.getClassLoader(), new Class<?>[] {VMExits.class}, invocation);
+                    VMExits exits = (VMExits) Proxy.newProxyInstance(VMExits.class.getClassLoader(), new Class<?>[] { VMExits.class}, invocation);
                     VMEntries entries = Compiler.initializeClient(exits);
                     invocation.setDelegate(entries);
                 } else {
-                    vmExits = LoggingProxy.getProxy(VMExits.class, new VMExitsNative());
-                    // vmExits = new VMExitsNative();
+                    if (Logger.ENABLED)
+                        vmExits = LoggingProxy.getProxy(VMExits.class, new VMExitsNative());
+                    else
+                        vmExits = new VMExitsNative();
                 }
             } catch (Throwable t) {
                 t.printStackTrace();
@@ -120,13 +124,14 @@
         compiler = new C1XCompiler(runtime, target, generator);
 
         C1XOptions.setOptimizationLevel(3);
-        C1XOptions.TraceBytecodeParserLevel = 4;
+        C1XOptions.TraceBytecodeParserLevel = Logger.ENABLED ? 4 : 0;
         C1XOptions.PrintCFGToFile = false;
         C1XOptions.PrintAssembly = false;// true;
-        C1XOptions.PrintCompilation = true;
+        C1XOptions.PrintCompilation = Logger.ENABLED;
         C1XOptions.GenAssertionCode = true;
         C1XOptions.DetailedAsserts = true;
         C1XOptions.GenSpecialDivChecks = true;
+        C1XOptions.AlignCallsForPatching = true;
     }
 
     public CiCompiler getCompiler() {