comparison src/share/vm/adlc/adlparse.cpp @ 4114:6729bbc1fcd6

7003454: order constants in constant table by number of references in code Reviewed-by: kvn, never, bdelsart
author twisti
date Wed, 16 Nov 2011 01:39:50 -0800
parents c7b60b601eb4
children f03a3c8bd5e5
comparison
equal deleted inserted replaced
4113:8c57262447d3 4114:6729bbc1fcd6
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
3113 3113
3114 // Start code line. 3114 // Start code line.
3115 encoding->add_code(" _constant = C->constant_table().add"); 3115 encoding->add_code(" _constant = C->constant_table().add");
3116 3116
3117 // Parse everything in ( ) expression. 3117 // Parse everything in ( ) expression.
3118 encoding->add_code("("); 3118 encoding->add_code("(this, ");
3119 next_char(); // Skip '(' 3119 next_char(); // Skip '('
3120 int parens_depth = 1; 3120 int parens_depth = 1;
3121 3121
3122 // Collect the parts of the constant expression. 3122 // Collect the parts of the constant expression.
3123 // (1) strings that are passed through to output 3123 // (1) strings that are passed through to output
3128 encoding->add_code("("); 3128 encoding->add_code("(");
3129 next_char(); 3129 next_char();
3130 } 3130 }
3131 else if (_curchar == ')') { 3131 else if (_curchar == ')') {
3132 parens_depth--; 3132 parens_depth--;
3133 encoding->add_code(")"); 3133 if (parens_depth > 0)
3134 encoding->add_code(")");
3134 next_char(); 3135 next_char();
3135 } 3136 }
3136 else { 3137 else {
3137 // (1) 3138 // (1)
3138 // Check if there is a string to pass through to output 3139 // Check if there is a string to pass through to output
3155 } 3156 }
3156 } 3157 }
3157 } 3158 }
3158 3159
3159 // Finish code line. 3160 // Finish code line.
3160 encoding->add_code(";"); 3161 encoding->add_code(");");
3161 3162
3162 if (_AD._adlocation_debug) { 3163 if (_AD._adlocation_debug) {
3163 encoding->add_code(end_line_marker()); 3164 encoding->add_code(end_line_marker());
3164 } 3165 }
3165 3166