comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExitsNative.java @ 1445:a7b84a5e16c6

Remove caching for constant pool entries (same index can be used to retrieve e.g. type and field). Fast fail on bailout in C1X.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Tue, 09 Nov 2010 13:42:06 +0100
parents c0e244017dad
children 8cfe3537a0d3
comparison
equal deleted inserted replaced
1444:c0e244017dad 1445:a7b84a5e16c6
101 101
102 return true; 102 return true;
103 } 103 }
104 104
105 @Override 105 @Override
106 public void compileMethod(long methodVmId, String name, int entryBCI) { 106 public void compileMethod(long methodVmId, String name, int entryBCI) throws Throwable {
107 107
108 if (!compileMethods) { 108 if (!compileMethods) {
109 return; 109 return;
110 } 110 }
111 111
116 116
117 if (result.bailout() != null) { 117 if (result.bailout() != null) {
118 StringWriter out = new StringWriter(); 118 StringWriter out = new StringWriter();
119 result.bailout().printStackTrace(new PrintWriter(out)); 119 result.bailout().printStackTrace(new PrintWriter(out));
120 Logger.info("Bailout:\n" + out.toString()); 120 Logger.info("Bailout:\n" + out.toString());
121 Compiler.getVMEntries().recordBailout(result.bailout().getMessage());
121 } else { 122 } else {
122 Logger.log("Compilation result: " + result.targetMethod()); 123 Logger.log("Compilation result: " + result.targetMethod());
123 HotSpotTargetMethod.installMethod(riMethod, result.targetMethod()); 124 HotSpotTargetMethod.installMethod(riMethod, result.targetMethod());
124 } 125 }
125 } catch (Throwable t) { 126 } catch (Throwable t) {
126 StringWriter out = new StringWriter(); 127 StringWriter out = new StringWriter();
127 t.printStackTrace(new PrintWriter(out)); 128 t.printStackTrace(new PrintWriter(out));
128 Logger.info("Compilation interrupted:\n" + out.toString()); 129 Logger.info("Compilation interrupted:\n" + out.toString());
130 throw t;
129 } 131 }
130 } 132 }
131 133
132 @Override 134 @Override
133 public RiMethod createRiMethodResolved(long vmId, String name) { 135 public RiMethod createRiMethodResolved(long vmId, String name) {