Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/globals.cpp @ 1770:40d7b43b6fe0
Merge
author | kamg |
---|---|
date | Tue, 07 Sep 2010 11:38:09 -0400 |
parents | 6ee479178066 |
children | f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1767:dee553c74493 | 1770:40d7b43b6fe0 |
---|---|
66 } | 66 } |
67 | 67 |
68 // Length of format string (e.g. "%.1234s") for printing ccstr below | 68 // Length of format string (e.g. "%.1234s") for printing ccstr below |
69 #define FORMAT_BUFFER_LEN 16 | 69 #define FORMAT_BUFFER_LEN 16 |
70 | 70 |
71 void Flag::print_on(outputStream* st) { | 71 void Flag::print_on(outputStream* st, bool withComments) { |
72 st->print("%5s %-35s %c= ", type, name, (origin != DEFAULT ? ':' : ' ')); | 72 st->print("%9s %-40s %c= ", type, name, (origin != DEFAULT ? ':' : ' ')); |
73 if (is_bool()) st->print("%-16s", get_bool() ? "true" : "false"); | 73 if (is_bool()) st->print("%-16s", get_bool() ? "true" : "false"); |
74 if (is_intx()) st->print("%-16ld", get_intx()); | 74 if (is_intx()) st->print("%-16ld", get_intx()); |
75 if (is_uintx()) st->print("%-16lu", get_uintx()); | 75 if (is_uintx()) st->print("%-16lu", get_uintx()); |
76 if (is_uint64_t()) st->print("%-16lu", get_uint64_t()); | 76 if (is_uint64_t()) st->print("%-16lu", get_uint64_t()); |
77 if (is_double()) st->print("%-16f", get_double()); | |
78 | |
77 if (is_ccstr()) { | 79 if (is_ccstr()) { |
78 const char* cp = get_ccstr(); | 80 const char* cp = get_ccstr(); |
79 if (cp != NULL) { | 81 if (cp != NULL) { |
80 const char* eol; | 82 const char* eol; |
81 while ((eol = strchr(cp, '\n')) != NULL) { | 83 while ((eol = strchr(cp, '\n')) != NULL) { |
82 char format_buffer[FORMAT_BUFFER_LEN]; | 84 char format_buffer[FORMAT_BUFFER_LEN]; |
83 size_t llen = pointer_delta(eol, cp, sizeof(char)); | 85 size_t llen = pointer_delta(eol, cp, sizeof(char)); |
84 jio_snprintf(format_buffer, FORMAT_BUFFER_LEN, | 86 jio_snprintf(format_buffer, FORMAT_BUFFER_LEN, |
85 "%%." SIZE_FORMAT "s", llen); | 87 "%%." SIZE_FORMAT "s", llen); |
86 st->print(format_buffer, cp); | 88 st->print(format_buffer, cp); |
87 st->cr(); | 89 st->cr(); |
88 cp = eol+1; | 90 cp = eol+1; |
89 st->print("%5s %-35s += ", "", name); | 91 st->print("%5s %-35s += ", "", name); |
90 } | 92 } |
91 st->print("%-16s", cp); | 93 st->print("%-16s", cp); |
92 } | 94 } |
93 } | 95 else st->print("%-16s", ""); |
94 st->print(" %s", kind); | 96 } |
97 st->print("%-20s", kind); | |
98 if (withComments) { | |
99 #ifndef PRODUCT | |
100 st->print("%s", doc ); | |
101 #endif | |
102 } | |
95 st->cr(); | 103 st->cr(); |
96 } | 104 } |
97 | 105 |
98 void Flag::print_as_flag(outputStream* st) { | 106 void Flag::print_as_flag(outputStream* st) { |
99 if (is_bool()) { | 107 if (is_bool()) { |
129 } | 137 } |
130 | 138 |
131 // 4991491 do not "optimize out" the was_set false values: omitting them | 139 // 4991491 do not "optimize out" the was_set false values: omitting them |
132 // tickles a Microsoft compiler bug causing flagTable to be malformed | 140 // tickles a Microsoft compiler bug causing flagTable to be malformed |
133 | 141 |
134 #define RUNTIME_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{product}", DEFAULT }, | 142 #define RUNTIME_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{product}", DEFAULT }, |
135 #define RUNTIME_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{pd product}", DEFAULT }, | 143 #define RUNTIME_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{pd product}", DEFAULT }, |
136 #define RUNTIME_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{diagnostic}", DEFAULT }, | 144 #define RUNTIME_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{diagnostic}", DEFAULT }, |
137 #define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{experimental}", DEFAULT }, | 145 #define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{experimental}", DEFAULT }, |
138 #define RUNTIME_MANAGEABLE_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{manageable}", DEFAULT }, | 146 #define RUNTIME_MANAGEABLE_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{manageable}", DEFAULT }, |
139 #define RUNTIME_PRODUCT_RW_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{product rw}", DEFAULT }, | 147 #define RUNTIME_PRODUCT_RW_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{product rw}", DEFAULT }, |
140 | 148 |
141 #ifdef PRODUCT | 149 #ifdef PRODUCT |
142 #define RUNTIME_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ | 150 #define RUNTIME_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ |
143 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ | 151 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ |
144 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) | 152 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) |
145 #else | 153 #else |
146 #define RUNTIME_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "", DEFAULT }, | 154 #define RUNTIME_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "", DEFAULT }, |
147 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{pd}", DEFAULT }, | 155 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, doc, "{pd}", DEFAULT }, |
148 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{notproduct}", DEFAULT }, | 156 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{notproduct}", DEFAULT }, |
149 #endif | 157 #endif |
150 | 158 |
151 #ifdef _LP64 | 159 #ifdef _LP64 |
152 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{lp64_product}", DEFAULT }, | 160 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{lp64_product}", DEFAULT }, |
153 #else | 161 #else |
154 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ | 162 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ |
155 #endif // _LP64 | 163 #endif // _LP64 |
156 | 164 |
157 #define C1_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C1 product}", DEFAULT }, | 165 #define C1_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C1 product}", DEFAULT }, |
158 #define C1_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{C1 pd product}", DEFAULT }, | 166 #define C1_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C1 pd product}", DEFAULT }, |
159 #ifdef PRODUCT | 167 #ifdef PRODUCT |
160 #define C1_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ | 168 #define C1_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ |
161 #define C1_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ | 169 #define C1_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ |
162 #define C1_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) | 170 #define C1_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) |
163 #else | 171 #else |
164 #define C1_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C1}", DEFAULT }, | 172 #define C1_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C1}", DEFAULT }, |
165 #define C1_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{C1 pd}", DEFAULT }, | 173 #define C1_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, doc, "{C1 pd}", DEFAULT }, |
166 #define C1_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C1 notproduct}", DEFAULT }, | 174 #define C1_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C1 notproduct}", DEFAULT }, |
167 #endif | 175 #endif |
168 | 176 |
169 | 177 |
170 #define C2_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2 product}", DEFAULT }, | 178 #define C2_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 product}", DEFAULT }, |
171 #define C2_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{C2 pd product}", DEFAULT }, | 179 #define C2_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 pd product}", DEFAULT }, |
172 #define C2_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2 diagnostic}", DEFAULT }, | 180 #define C2_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 diagnostic}", DEFAULT }, |
173 #define C2_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2 experimental}", DEFAULT }, | 181 #define C2_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 experimental}", DEFAULT }, |
174 #ifdef PRODUCT | 182 #ifdef PRODUCT |
175 #define C2_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ | 183 #define C2_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ |
176 #define C2_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ | 184 #define C2_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ |
177 #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) | 185 #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) |
178 #else | 186 #else |
179 #define C2_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2}", DEFAULT }, | 187 #define C2_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C2}", DEFAULT }, |
180 #define C2_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{C2 pd}", DEFAULT }, | 188 #define C2_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, doc, "{C2 pd}", DEFAULT }, |
181 #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2 notproduct}", DEFAULT }, | 189 #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C2 notproduct}", DEFAULT }, |
182 #endif | 190 #endif |
183 | 191 |
184 #define SHARK_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark product}", DEFAULT }, | 192 #define SHARK_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark product}", DEFAULT }, |
185 #define SHARK_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{Shark pd product}", DEFAULT }, | 193 #define SHARK_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark pd product}", DEFAULT }, |
186 #define SHARK_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark diagnostic}", DEFAULT }, | 194 #define SHARK_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark diagnostic}", DEFAULT }, |
187 #ifdef PRODUCT | 195 #ifdef PRODUCT |
188 #define SHARK_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ | 196 #define SHARK_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */ |
189 #define SHARK_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ | 197 #define SHARK_PD_DEVELOP_FLAG_STRUCT(type, name, doc) /* flag is constant */ |
190 #define SHARK_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) | 198 #define SHARK_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) |
191 #else | 199 #else |
192 #define SHARK_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark}", DEFAULT }, | 200 #define SHARK_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{Shark}", DEFAULT }, |
193 #define SHARK_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, "{Shark pd}", DEFAULT }, | 201 #define SHARK_PD_DEVELOP_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, doc, "{Shark pd}", DEFAULT }, |
194 #define SHARK_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark notproduct}", DEFAULT }, | 202 #define SHARK_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{Shark notproduct}", DEFAULT }, |
195 #endif | 203 #endif |
196 | 204 |
197 static Flag flagTable[] = { | 205 static Flag flagTable[] = { |
198 RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_EXPERIMENTAL_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT, RUNTIME_MANAGEABLE_FLAG_STRUCT, RUNTIME_PRODUCT_RW_FLAG_STRUCT, RUNTIME_LP64_PRODUCT_FLAG_STRUCT) | 206 RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_EXPERIMENTAL_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT, RUNTIME_MANAGEABLE_FLAG_STRUCT, RUNTIME_PRODUCT_RW_FLAG_STRUCT, RUNTIME_LP64_PRODUCT_FLAG_STRUCT) |
199 RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT) | 207 RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT) |
483 assert(Arguments::check_vm_args_consistency(), "Some flag settings conflict"); | 491 assert(Arguments::check_vm_args_consistency(), "Some flag settings conflict"); |
484 } | 492 } |
485 | 493 |
486 #endif // PRODUCT | 494 #endif // PRODUCT |
487 | 495 |
488 void CommandLineFlags::printFlags() { | 496 void CommandLineFlags::printFlags(bool withComments) { |
489 // Print the flags sorted by name | 497 // Print the flags sorted by name |
490 // note: this method is called before the thread structure is in place | 498 // note: this method is called before the thread structure is in place |
491 // which means resource allocation cannot be used. | 499 // which means resource allocation cannot be used. |
492 | 500 |
493 // Compute size | 501 // Compute size |
503 | 511 |
504 // Print | 512 // Print |
505 tty->print_cr("[Global flags]"); | 513 tty->print_cr("[Global flags]"); |
506 for (int i = 0; i < length; i++) { | 514 for (int i = 0; i < length; i++) { |
507 if (array[i]->is_unlocked()) { | 515 if (array[i]->is_unlocked()) { |
508 array[i]->print_on(tty); | 516 array[i]->print_on(tty, withComments); |
509 } | 517 } |
510 } | 518 } |
511 FREE_C_HEAP_ARRAY(Flag*, array); | 519 FREE_C_HEAP_ARRAY(Flag*, array); |
512 } | 520 } |