]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gprofng/src/comp_com.c
Update year range in gprofng copyright notices
[thirdparty/binutils-gdb.git] / gprofng / src / comp_com.c
1 /* Copyright (C) 2021-2023 Free Software Foundation, Inc.
2 Contributed by Oracle.
3
4 This file is part of GNU Binutils.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, 51 Franklin Street - Fifth Floor, Boston,
19 MA 02110-1301, USA. */
20
21 #include <stdio.h>
22 #include <string.h>
23 #include <stdlib.h>
24 #include <locale.h>
25 #include <values.h>
26 #include <assert.h>
27
28 #include "comp_com.h"
29
30 /*
31 * To add a new message _FORMAT_ please perform the following tasks:
32 * 1) Insert it into the list below, with the matching comment.
33 * The table is sorted by parameter type. In increasing order
34 * they are: String, Procedure, Variable, Loop, Region, Integer.
35 * 2) Insert the corresponding information into the following
36 * procedures in this file: ccm_num_params(), ccm_paramlist_index(),
37 * ccm_param_primtype(), and ccm_param_hightype().
38 * 3) If you are also creating a new high-type or primitive-type,
39 * extend the corresponding enum, update this comment and make sure
40 * to update any code in the analyzer, iropt, cg or ube that depends
41 * on knowing the limited set of types.
42 */
43
44 typedef enum ccm_fmt {
45 CCMFMT_NONE, /* none */
46 CCMFMT_S1, /* s1 */
47 CCMFMT_S1S2, /* s1, s2 */
48 CCMFMT_S1L2, /* s1, l2 */
49 CCMFMT_S1L2VV3, /* s1, l2, v3, v4, ... */
50 CCMFMT_S1R2VV3, /* s1, r2, v3, v4, ... */
51 CCMFMT_S1X2, /* s1, x2 */
52 CCMFMT_P1, /* p1 */
53 CCMFMT_P1S2, /* p1, s2 */
54 CCMFMT_P1S2P3, /* p1, s2, p3 */
55 CCMFMT_P1S2P3I4, /* p1, s2, p3, i4 */
56 CCMFMT_P1S2I3, /* p1, s2, i3 */
57 CCMFMT_P1P2, /* p1, p2 */
58 CCMFMT_P1L2, /* p1, l2 */
59 CCMFMT_P1I2, /* p1, i2 */
60 CCMFMT_P1I2L3, /* p1, i2, l3 */
61 CCMFMT_P1I2LL3, /* p1, i2, l3, l4 ... */
62 CCMFMT_P1I2I3, /* p1, i2, i3 */
63 CCMFMT_PP1, /* p1, p2, ... */
64 CCMFMT_V1, /* v1 */
65 CCMFMT_V1V2, /* v1, v2 */
66 CCMFMT_V1L2, /* v1, l2 */
67 CCMFMT_VV1, /* v1, v2, ... */
68 CCMFMT_L1, /* l1 */
69 CCMFMT_L1S2, /* l1, s2 */
70 CCMFMT_L1S2L3, /* l1, s2, l3 */
71 CCMFMT_L1P2, /* l1, p2 */
72 CCMFMT_L1P2I3, /* l1, p2, i3 */
73 CCMFMT_L1PP2, /* l1, p2, p3, ... */
74 CCMFMT_L1VV2, /* l1, v2, v3, ... */
75 CCMFMT_L1L2, /* l1, l2 */
76 CCMFMT_L1L2L3, /* l1, l2, l3 */
77 CCMFMT_LL1, /* l1, l2, ... */
78 CCMFMT_L1R2, /* l1, r2 */
79 CCMFMT_L1I2, /* l1, i2 */
80 CCMFMT_L1I2L3, /* l1, i2, l3 */
81 CCMFMT_L1I2LL3, /* l1, i2, l3, l4, ... */
82 CCMFMT_L1I2I3L4, /* l1, i2, i3, l4 */
83 CCMFMT_L1I2I3I4I5, /* l1, i2, ..., i5 */
84 CCMFMT_L1I2I3I4I5I6I7, /* l1, i2, ..., i7 */
85 CCMFMT_L1I2I3I4I5I6I7I8I9, /* l1, i2, ..., i9 */
86 CCMFMT_L1II2, /* l1, i2, i3, ... */
87 CCMFMT_R1, /* r1 */
88 CCMFMT_R1VV2, /* r1, v2, v3, ... */
89 CCMFMT_I1, /* i1 */
90 CCMFMT_I1P2I3, /* i1, p2, i3 */
91 CCMFMT_I1V2, /* i1, v2 */
92 CCMFMT_I1V2V3, /* i1, v2, v3 */
93 CCMFMT_I1L2, /* i1, l2 */
94 CCMFMT_I1LL2, /* i1, l2, l3, ... */
95 CCMFMT_I1I2I3I4, /* i1, i2, i3, i4 */
96 CCMFMT_I1I2I3I4I5I6, /* i1, i2, ..., i6 */
97 CCMFMT_I1I2I3I4I5I6I7I8, /* i1, i2, ..., i8 */
98 CCMFMT_LAST
99 } Ccm_Fmttype_t;
100
101 /*
102 * Low- and high-level types for commentary parameters.
103 */
104
105 typedef enum ccm_primtype
106 {
107 CCM_PRIMTYPE_NONE,
108 CCM_PRIMTYPE_STRING,
109 CCM_PRIMTYPE_INTEGER,
110 CCM_PRIMTYPE_HEXSTRING
111 } Ccm_Primtype_t;
112
113 typedef enum ccm_hightype
114 {
115 CCM_HITYPE_NONE,
116 CCM_HITYPE_STRING,
117 CCM_HITYPE_PROCEDURE,
118 CCM_HITYPE_VARIABLE,
119 CCM_HITYPE_LOOPTAG,
120 CCM_HITYPE_REGIONTAG,
121 CCM_HITYPE_HEXSTRING,
122 CCM_HITYPE_INTEGER
123 } Ccm_Hitype_t;
124
125 typedef struct ccm_attrs
126 {
127 char *msg; /* I18N msg string */
128 const char *name; /* Print name for this message ID */
129 int32_t vis; /* Visibility bits */
130 Ccm_Fmttype_t fmt; /* Format type */
131 } Ccm_Attr_t;
132
133 static Ccm_Attr_t *ccm_attrs; /* Table of per-msg attributes */
134 static nl_catd ccm_catd = (nl_catd) - 1; /* messages id */
135
136 /*
137 * map COMPMSG_ID to table indices
138 */
139 static int
140 ccm_vis_index (COMPMSG_ID m)
141 {
142 int32_t high = m >> 8;
143 int32_t low = m & 0xFF;
144 for (int i = 0; i < 24; i++, high >>= 1)
145 if (high <= 1)
146 return (i << 8) + low + 1;
147 return 0;
148 }
149
150 /*
151 * Return # parameters for this message; MAXINT for messages with
152 * parameter lists.
153 */
154 static int
155 ccm_num_params (COMPMSG_ID m)
156 {
157 int vindex;
158 int res;
159 vindex = ccm_vis_index (m);
160 switch (ccm_attrs[vindex].fmt)
161 {
162 case CCMFMT_NONE:
163 res = 0;
164 break;
165 case CCMFMT_S1:
166 case CCMFMT_P1:
167 case CCMFMT_V1:
168 case CCMFMT_L1:
169 case CCMFMT_R1:
170 case CCMFMT_I1:
171 res = 1;
172 break;
173 case CCMFMT_S1S2:
174 case CCMFMT_S1L2:
175 case CCMFMT_S1X2:
176 case CCMFMT_P1S2:
177 case CCMFMT_P1P2:
178 case CCMFMT_P1L2:
179 case CCMFMT_P1I2:
180 case CCMFMT_V1V2:
181 case CCMFMT_V1L2:
182 case CCMFMT_L1S2:
183 case CCMFMT_L1P2:
184 case CCMFMT_L1L2:
185 case CCMFMT_L1R2:
186 case CCMFMT_L1I2:
187 case CCMFMT_I1V2:
188 case CCMFMT_I1L2:
189 res = 2;
190 break;
191 case CCMFMT_P1S2P3:
192 case CCMFMT_P1S2I3:
193 case CCMFMT_P1I2L3:
194 case CCMFMT_P1I2I3:
195 case CCMFMT_L1S2L3:
196 case CCMFMT_L1P2I3:
197 case CCMFMT_L1L2L3:
198 case CCMFMT_L1I2L3:
199 case CCMFMT_I1P2I3:
200 case CCMFMT_I1V2V3:
201 res = 3;
202 break;
203 case CCMFMT_P1S2P3I4:
204 case CCMFMT_L1I2I3L4:
205 case CCMFMT_I1I2I3I4:
206 res = 4;
207 break;
208 case CCMFMT_L1I2I3I4I5:
209 res = 5;
210 break;
211 case CCMFMT_I1I2I3I4I5I6:
212 res = 6;
213 break;
214 case CCMFMT_L1I2I3I4I5I6I7:
215 res = 7;
216 break;
217 case CCMFMT_I1I2I3I4I5I6I7I8:
218 res = 8;
219 break;
220 case CCMFMT_L1I2I3I4I5I6I7I8I9:
221 res = 9;
222 break;
223 case CCMFMT_S1L2VV3:
224 case CCMFMT_S1R2VV3:
225 case CCMFMT_PP1:
226 case CCMFMT_P1I2LL3:
227 case CCMFMT_VV1:
228 case CCMFMT_L1PP2:
229 case CCMFMT_L1VV2:
230 case CCMFMT_LL1:
231 case CCMFMT_L1I2LL3:
232 case CCMFMT_L1II2:
233 case CCMFMT_R1VV2:
234 case CCMFMT_I1LL2:
235 res = MAXINT;
236 break;
237 case CCMFMT_LAST:
238 default:
239 /* programming failure */
240 /* if(1) is hack to get around warning from C++ compiler */
241 if (1) assert (0);
242 break;
243 }
244 return res;
245 }
246
247 static int
248 ccm_paramlist_index (COMPMSG_ID m)
249 {
250 int res;
251 int vindex = ccm_vis_index (m);
252 switch (ccm_attrs[vindex].fmt)
253 {
254 case CCMFMT_NONE:
255 case CCMFMT_S1:
256 case CCMFMT_S1S2:
257 case CCMFMT_S1L2:
258 case CCMFMT_S1X2:
259 case CCMFMT_P1:
260 case CCMFMT_P1S2:
261 case CCMFMT_P1S2P3:
262 case CCMFMT_P1S2P3I4:
263 case CCMFMT_P1S2I3:
264 case CCMFMT_P1P2:
265 case CCMFMT_P1L2:
266 case CCMFMT_P1I2:
267 case CCMFMT_P1I2L3:
268 case CCMFMT_P1I2I3:
269 case CCMFMT_V1:
270 case CCMFMT_V1V2:
271 case CCMFMT_V1L2:
272 case CCMFMT_L1:
273 case CCMFMT_L1S2:
274 case CCMFMT_L1S2L3:
275 case CCMFMT_L1P2:
276 case CCMFMT_L1P2I3:
277 case CCMFMT_L1L2:
278 case CCMFMT_L1L2L3:
279 case CCMFMT_L1R2:
280 case CCMFMT_L1I2:
281 case CCMFMT_L1I2L3:
282 case CCMFMT_L1I2I3L4:
283 case CCMFMT_L1I2I3I4I5:
284 case CCMFMT_L1I2I3I4I5I6I7:
285 case CCMFMT_L1I2I3I4I5I6I7I8I9:
286 case CCMFMT_R1:
287 case CCMFMT_I1:
288 case CCMFMT_I1P2I3:
289 case CCMFMT_I1V2:
290 case CCMFMT_I1V2V3:
291 case CCMFMT_I1L2:
292 case CCMFMT_I1I2I3I4:
293 case CCMFMT_I1I2I3I4I5I6:
294 case CCMFMT_I1I2I3I4I5I6I7I8:
295 res = 0;
296 break;
297 case CCMFMT_PP1:
298 case CCMFMT_VV1:
299 case CCMFMT_LL1:
300 res = 1;
301 break;
302 case CCMFMT_L1PP2:
303 case CCMFMT_L1VV2:
304 case CCMFMT_L1II2:
305 case CCMFMT_R1VV2:
306 case CCMFMT_I1LL2:
307 res = 2;
308 break;
309 case CCMFMT_S1L2VV3:
310 case CCMFMT_S1R2VV3:
311 case CCMFMT_P1I2LL3:
312 case CCMFMT_L1I2LL3:
313 res = 3;
314 break;
315 case CCMFMT_LAST:
316 default:
317 /* programming failure */
318 /* if(1) is hack to get around warning from C++ compiler */
319 if (1) assert (0);
320 break;
321 }
322 return res;
323 }
324
325 static Ccm_Primtype_t
326 ccm_param_primtype (COMPMSG_ID m, int param_idx)
327 {
328 int vindex;
329 Ccm_Primtype_t res;
330 if (param_idx <= 0 || param_idx > ccm_num_params (m))
331 return CCM_PRIMTYPE_NONE;
332
333 res = CCM_PRIMTYPE_NONE; /* should always be updated */
334 vindex = ccm_vis_index (m);
335 switch (ccm_attrs[vindex].fmt)
336 {
337 /*
338 * Sort cases by:
339 * 1) # parameters
340 * 2) Strings before Integers
341 * 3) Enum tags
342 */
343 case CCMFMT_NONE:
344 /* programming failure */
345 /* if(1) is hack to get around warning from C++ compiler */
346 if (1)
347 assert (0);
348 break;
349 case CCMFMT_S1:
350 case CCMFMT_P1:
351 case CCMFMT_V1:
352 case CCMFMT_L1:
353 case CCMFMT_R1:
354 if (param_idx == 1)
355 res = CCM_PRIMTYPE_STRING;
356 break;
357 case CCMFMT_I1:
358 if (param_idx == 1)
359 res = CCM_PRIMTYPE_INTEGER;
360 break;
361 case CCMFMT_S1S2:
362 case CCMFMT_S1L2:
363 case CCMFMT_P1S2:
364 case CCMFMT_P1P2:
365 case CCMFMT_P1L2:
366 case CCMFMT_V1V2:
367 case CCMFMT_V1L2:
368 case CCMFMT_L1S2:
369 case CCMFMT_L1P2:
370 case CCMFMT_L1L2:
371 case CCMFMT_L1R2:
372 if (param_idx == 1 || param_idx == 2)
373 res = CCM_PRIMTYPE_STRING;
374 break;
375 case CCMFMT_S1X2:
376 if (param_idx == 1)
377 res = CCM_PRIMTYPE_STRING;
378 else if (param_idx == 2)
379 res = CCM_PRIMTYPE_HEXSTRING;
380 break;
381 case CCMFMT_P1I2:
382 case CCMFMT_L1I2:
383 if (param_idx == 1)
384 res = CCM_PRIMTYPE_STRING;
385 else if (param_idx == 2)
386 res = CCM_PRIMTYPE_INTEGER;
387 break;
388 case CCMFMT_I1V2:
389 case CCMFMT_I1L2:
390 if (param_idx == 1)
391 res = CCM_PRIMTYPE_INTEGER;
392 else if (param_idx == 2)
393 res = CCM_PRIMTYPE_STRING;
394 break;
395 case CCMFMT_P1S2P3:
396 case CCMFMT_L1S2L3:
397 case CCMFMT_L1L2L3:
398 if (param_idx >= 1 && param_idx <= 3)
399 res = CCM_PRIMTYPE_STRING;
400 break;
401 case CCMFMT_P1S2I3:
402 case CCMFMT_L1P2I3:
403 if (param_idx == 1 || param_idx == 2)
404 res = CCM_PRIMTYPE_STRING;
405 else if (param_idx == 3)
406 res = CCM_PRIMTYPE_INTEGER;
407 break;
408 case CCMFMT_P1I2L3:
409 case CCMFMT_L1I2L3:
410 if (param_idx == 1 || param_idx == 3)
411 res = CCM_PRIMTYPE_STRING;
412 else if (param_idx == 2)
413 res = CCM_PRIMTYPE_INTEGER;
414 break;
415 case CCMFMT_P1I2I3:
416 if (param_idx == 1)
417 res = CCM_PRIMTYPE_STRING;
418 else if (param_idx == 2 || param_idx == 3)
419 res = CCM_PRIMTYPE_INTEGER;
420 break;
421 case CCMFMT_I1V2V3:
422 if (param_idx == 1)
423 res = CCM_PRIMTYPE_INTEGER;
424 else if (param_idx == 2 || param_idx == 3)
425 res = CCM_PRIMTYPE_STRING;
426 break;
427 case CCMFMT_I1P2I3:
428 if (param_idx == 1 || param_idx == 3)
429 res = CCM_PRIMTYPE_INTEGER;
430 else if (param_idx == 2)
431 res = CCM_PRIMTYPE_STRING;
432 break;
433 case CCMFMT_L1I2I3L4:
434 if (param_idx == 1 || param_idx == 4)
435 res = CCM_PRIMTYPE_STRING;
436 else if (param_idx == 2 || param_idx == 3)
437 res = CCM_PRIMTYPE_INTEGER;
438 break;
439 case CCMFMT_P1S2P3I4:
440 if (param_idx >= 1 && param_idx <= 3)
441 res = CCM_PRIMTYPE_STRING;
442 else if (param_idx == 4)
443 res = CCM_PRIMTYPE_INTEGER;
444 break;
445 case CCMFMT_I1I2I3I4:
446 if (param_idx >= 1 && param_idx <= 4)
447 res = CCM_PRIMTYPE_INTEGER;
448 break;
449 case CCMFMT_L1I2I3I4I5:
450 if (param_idx == 1)
451 res = CCM_PRIMTYPE_STRING;
452 else if (param_idx >= 2 && param_idx <= 5)
453 res = CCM_PRIMTYPE_INTEGER;
454 break;
455 case CCMFMT_I1I2I3I4I5I6:
456 if (param_idx >= 1 && param_idx <= 6)
457 res = CCM_PRIMTYPE_INTEGER;
458 break;
459 case CCMFMT_L1I2I3I4I5I6I7:
460 if (param_idx == 1)
461 res = CCM_PRIMTYPE_STRING;
462 else if (param_idx >= 2 && param_idx <= 7)
463 res = CCM_PRIMTYPE_INTEGER;
464 break;
465 case CCMFMT_I1I2I3I4I5I6I7I8:
466 if (param_idx >= 1 && param_idx <= 8)
467 res = CCM_PRIMTYPE_INTEGER;
468 break;
469 case CCMFMT_L1I2I3I4I5I6I7I8I9:
470 if (param_idx == 1)
471 res = CCM_PRIMTYPE_STRING;
472 else if (param_idx >= 2 && param_idx <= 9)
473 res = CCM_PRIMTYPE_INTEGER;
474 break;
475 case CCMFMT_S1L2VV3:
476 case CCMFMT_S1R2VV3:
477 case CCMFMT_PP1:
478 case CCMFMT_VV1:
479 case CCMFMT_L1PP2:
480 case CCMFMT_L1VV2:
481 case CCMFMT_LL1:
482 case CCMFMT_R1VV2:
483 res = CCM_PRIMTYPE_STRING;
484 break;
485 case CCMFMT_P1I2LL3:
486 case CCMFMT_L1I2LL3:
487 if (param_idx == 2)
488 res = CCM_PRIMTYPE_INTEGER;
489 else
490 res = CCM_PRIMTYPE_STRING;
491 break;
492 case CCMFMT_L1II2:
493 if (param_idx == 1)
494 res = CCM_PRIMTYPE_STRING;
495 else
496 res = CCM_PRIMTYPE_INTEGER;
497 break;
498 case CCMFMT_I1LL2:
499 if (param_idx == 1)
500 res = CCM_PRIMTYPE_INTEGER;
501 else
502 res = CCM_PRIMTYPE_STRING;
503 break;
504 case CCMFMT_LAST:
505 default:
506 /* programming failure */
507 /* if(1) is hack to get around warning from C++ compiler */
508 if (1)
509 assert (0);
510 break;
511 }
512 return res;
513 }
514
515 static Ccm_Hitype_t
516 ccm_param_hightype (COMPMSG_ID m, int param_idx)
517 {
518 int vindex;
519 Ccm_Hitype_t res;
520
521 if (param_idx <= 0 || param_idx > ccm_num_params (m))
522 return CCM_HITYPE_NONE;
523 res = CCM_HITYPE_NONE; /* should always be updated */
524 vindex = ccm_vis_index (m);
525 switch (ccm_attrs[vindex].fmt)
526 {
527 case CCMFMT_NONE:
528 /* programming failure */
529 /* if(1) is hack to get around warning from C++ compiler */
530 if (1)
531 assert (0);
532 break;
533 case CCMFMT_S1:
534 if (param_idx == 1)
535 res = CCM_HITYPE_STRING;
536 break;
537 case CCMFMT_S1S2:
538 if (param_idx == 1 || param_idx == 2)
539 res = CCM_HITYPE_STRING;
540 break;
541 case CCMFMT_S1L2:
542 if (param_idx == 1)
543 res = CCM_HITYPE_STRING;
544 else if (param_idx == 2)
545 res = CCM_HITYPE_LOOPTAG;
546 break;
547 case CCMFMT_S1L2VV3:
548 if (param_idx == 1)
549 res = CCM_HITYPE_STRING;
550 else if (param_idx == 2)
551 res = CCM_HITYPE_LOOPTAG;
552 else
553 res = CCM_HITYPE_STRING;
554 break;
555 case CCMFMT_S1R2VV3:
556 if (param_idx == 1)
557 res = CCM_HITYPE_STRING;
558 else if (param_idx == 2)
559 res = CCM_HITYPE_REGIONTAG;
560 else
561 res = CCM_HITYPE_VARIABLE;
562 break;
563 case CCMFMT_S1X2:
564 if (param_idx == 1)
565 res = CCM_HITYPE_STRING;
566 else if (param_idx == 2)
567 res = CCM_HITYPE_HEXSTRING;
568 break;
569 case CCMFMT_P1:
570 if (param_idx == 1)
571 res = CCM_HITYPE_PROCEDURE;
572 break;
573 case CCMFMT_P1S2:
574 if (param_idx == 1)
575 res = CCM_HITYPE_PROCEDURE;
576 else if (param_idx == 2)
577 res = CCM_HITYPE_STRING;
578 break;
579 case CCMFMT_P1S2P3:
580 if (param_idx == 1 || param_idx == 3)
581 res = CCM_HITYPE_PROCEDURE;
582 else if (param_idx == 2)
583 res = CCM_HITYPE_STRING;
584 break;
585 case CCMFMT_P1S2P3I4:
586 if (param_idx == 1 || param_idx == 3)
587 res = CCM_HITYPE_PROCEDURE;
588 else if (param_idx == 2)
589 res = CCM_HITYPE_STRING;
590 else if (param_idx == 4)
591 res = CCM_HITYPE_INTEGER;
592 break;
593 case CCMFMT_P1S2I3:
594 if (param_idx == 1)
595 res = CCM_HITYPE_PROCEDURE;
596 else if (param_idx == 2)
597 res = CCM_HITYPE_STRING;
598 else if (param_idx == 3)
599 res = CCM_HITYPE_INTEGER;
600 break;
601 case CCMFMT_P1P2:
602 if (param_idx == 1 || param_idx == 2)
603 res = CCM_HITYPE_PROCEDURE;
604 break;
605 case CCMFMT_P1L2:
606 if (param_idx == 1)
607 res = CCM_HITYPE_PROCEDURE;
608 else if (param_idx == 2)
609 res = CCM_HITYPE_LOOPTAG;
610 break;
611 case CCMFMT_P1I2:
612 if (param_idx == 1)
613 res = CCM_HITYPE_PROCEDURE;
614 else if (param_idx == 2)
615 res = CCM_HITYPE_INTEGER;
616 break;
617 case CCMFMT_P1I2L3:
618 if (param_idx == 1)
619 res = CCM_HITYPE_PROCEDURE;
620 else if (param_idx == 2)
621 res = CCM_HITYPE_INTEGER;
622 else if (param_idx == 3)
623 res = CCM_HITYPE_LOOPTAG;
624 break;
625 case CCMFMT_P1I2I3:
626 if (param_idx == 1)
627 res = CCM_HITYPE_PROCEDURE;
628 else if (param_idx == 2 || param_idx == 3)
629 res = CCM_HITYPE_INTEGER;
630 break;
631 case CCMFMT_P1I2LL3:
632 if (param_idx == 1)
633 res = CCM_HITYPE_PROCEDURE;
634 else if (param_idx == 2)
635 res = CCM_HITYPE_INTEGER;
636 else
637 res = CCM_HITYPE_LOOPTAG;
638 break;
639 case CCMFMT_PP1:
640 res = CCM_HITYPE_PROCEDURE;
641 break;
642 case CCMFMT_V1:
643 if (param_idx == 1)
644 res = CCM_HITYPE_VARIABLE;
645 break;
646 case CCMFMT_V1V2:
647 if (param_idx == 1 || param_idx == 2)
648 res = CCM_HITYPE_VARIABLE;
649 break;
650 case CCMFMT_V1L2:
651 if (param_idx == 1)
652 res = CCM_HITYPE_VARIABLE;
653 else if (param_idx == 2)
654 res = CCM_HITYPE_LOOPTAG;
655 break;
656 case CCMFMT_VV1:
657 res = CCM_HITYPE_VARIABLE;
658 break;
659 case CCMFMT_L1:
660 if (param_idx == 1)
661 res = CCM_HITYPE_LOOPTAG;
662 break;
663 case CCMFMT_L1S2:
664 if (param_idx == 1)
665 res = CCM_HITYPE_LOOPTAG;
666 else if (param_idx == 2)
667 res = CCM_HITYPE_STRING;
668 break;
669 case CCMFMT_L1S2L3:
670 if (param_idx == 1 || param_idx == 3)
671 res = CCM_HITYPE_LOOPTAG;
672 else if (param_idx == 2)
673 res = CCM_HITYPE_STRING;
674 break;
675 case CCMFMT_L1P2:
676 if (param_idx == 1)
677 res = CCM_HITYPE_LOOPTAG;
678 else if (param_idx == 2)
679 res = CCM_HITYPE_PROCEDURE;
680 break;
681 case CCMFMT_L1P2I3:
682 if (param_idx == 1)
683 res = CCM_HITYPE_LOOPTAG;
684 else if (param_idx == 2)
685 res = CCM_HITYPE_PROCEDURE;
686 else if (param_idx == 3)
687 res = CCM_HITYPE_INTEGER;
688 break;
689 case CCMFMT_L1PP2:
690 if (param_idx == 1)
691 res = CCM_HITYPE_LOOPTAG;
692 else
693 res = CCM_HITYPE_PROCEDURE;
694 break;
695 case CCMFMT_L1VV2:
696 if (param_idx == 1)
697 res = CCM_HITYPE_LOOPTAG;
698 else
699 res = CCM_HITYPE_VARIABLE;
700 break;
701 case CCMFMT_L1L2:
702 if (param_idx == 1 || param_idx == 2)
703 res = CCM_HITYPE_LOOPTAG;
704 break;
705 case CCMFMT_L1L2L3:
706 if (param_idx >= 1 && param_idx <= 3)
707 res = CCM_HITYPE_LOOPTAG;
708 break;
709 case CCMFMT_LL1:
710 res = CCM_HITYPE_LOOPTAG;
711 break;
712 case CCMFMT_L1R2:
713 if (param_idx == 1)
714 res = CCM_HITYPE_LOOPTAG;
715 else if (param_idx == 2)
716 res = CCM_HITYPE_REGIONTAG;
717 break;
718 case CCMFMT_L1I2:
719 if (param_idx == 1)
720 res = CCM_HITYPE_LOOPTAG;
721 else if (param_idx == 2)
722 res = CCM_HITYPE_INTEGER;
723 break;
724 case CCMFMT_L1I2L3:
725 if (param_idx == 1 || param_idx == 3)
726 res = CCM_HITYPE_LOOPTAG;
727 else if (param_idx == 2)
728 res = CCM_HITYPE_INTEGER;
729 break;
730 case CCMFMT_L1I2LL3:
731 if (param_idx == 2)
732 res = CCM_HITYPE_INTEGER;
733 else
734 res = CCM_HITYPE_LOOPTAG;
735 break;
736 case CCMFMT_L1I2I3L4:
737 if (param_idx == 1 || param_idx == 4)
738 res = CCM_HITYPE_LOOPTAG;
739 else if (param_idx == 2 || param_idx == 3)
740 res = CCM_HITYPE_INTEGER;
741 break;
742 case CCMFMT_L1I2I3I4I5:
743 if (param_idx == 1)
744 res = CCM_HITYPE_LOOPTAG;
745 else if (param_idx >= 2 && param_idx <= 5)
746 res = CCM_HITYPE_INTEGER;
747 break;
748 case CCMFMT_L1I2I3I4I5I6I7:
749 if (param_idx == 1)
750 res = CCM_HITYPE_LOOPTAG;
751 else if (param_idx >= 2 && param_idx <= 7)
752 res = CCM_HITYPE_INTEGER;
753 break;
754 case CCMFMT_L1I2I3I4I5I6I7I8I9:
755 if (param_idx == 1)
756 res = CCM_HITYPE_LOOPTAG;
757 else if (param_idx >= 2 && param_idx <= 9)
758 res = CCM_HITYPE_INTEGER;
759 break;
760 case CCMFMT_L1II2:
761 if (param_idx == 1)
762 res = CCM_HITYPE_LOOPTAG;
763 else
764 res = CCM_HITYPE_INTEGER;
765 break;
766 case CCMFMT_R1:
767 if (param_idx == 1)
768 res = CCM_HITYPE_REGIONTAG;
769 break;
770 case CCMFMT_R1VV2:
771 if (param_idx == 1)
772 res = CCM_HITYPE_REGIONTAG;
773 else
774 res = CCM_HITYPE_VARIABLE;
775 break;
776 case CCMFMT_I1:
777 if (param_idx == 1)
778 res = CCM_HITYPE_INTEGER;
779 break;
780 case CCMFMT_I1P2I3:
781 if (param_idx == 1 || param_idx == 3)
782 res = CCM_HITYPE_INTEGER;
783 else if (param_idx == 2)
784 res = CCM_HITYPE_PROCEDURE;
785 break;
786 case CCMFMT_I1V2:
787 if (param_idx == 1)
788 res = CCM_HITYPE_INTEGER;
789 else if (param_idx == 2)
790 res = CCM_HITYPE_VARIABLE;
791 break;
792 case CCMFMT_I1V2V3:
793 if (param_idx == 1)
794 res = CCM_HITYPE_INTEGER;
795 else if (param_idx == 2 || param_idx == 3)
796 res = CCM_HITYPE_VARIABLE;
797 break;
798 case CCMFMT_I1L2:
799 if (param_idx == 1)
800 res = CCM_HITYPE_INTEGER;
801 else if (param_idx == 2)
802 res = CCM_HITYPE_LOOPTAG;
803 break;
804 case CCMFMT_I1LL2:
805 if (param_idx == 1)
806 res = CCM_HITYPE_INTEGER;
807 else
808 res = CCM_HITYPE_LOOPTAG;
809 break;
810 case CCMFMT_I1I2I3I4:
811 if (param_idx >= 1 && param_idx <= 4)
812 res = CCM_HITYPE_INTEGER;
813 break;
814 case CCMFMT_I1I2I3I4I5I6:
815 if (param_idx >= 1 && param_idx <= 6)
816 res = CCM_HITYPE_INTEGER;
817 break;
818 case CCMFMT_I1I2I3I4I5I6I7I8:
819 if (param_idx >= 1 && param_idx <= 8)
820 res = CCM_HITYPE_INTEGER;
821 break;
822 case CCMFMT_LAST:
823 default:
824 /* programming failure */
825 /* if(1) is hack to get around warning from C++ compiler */
826 if (1)
827 assert (0);
828 break;
829 }
830 return res;
831 }
832
833 static void
834 ccm_vis_init ()
835 {
836 int size, vindex;
837 static int done = 0;
838 if (done)
839 return;
840 done = 1;
841 size = ccm_vis_index ((COMPMSG_ID) (CCMV_BASIC << 8));
842 ccm_attrs = (Ccm_Attr_t *) calloc (size, sizeof (Ccm_Attr_t));
843 if (ccm_attrs == NULL)
844 exit (1);
845 vindex = ccm_vis_index (CCM_MODDATE);
846 ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL;
847 ccm_attrs[vindex].name = "CCM_MODDATE";
848 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
849 "Source file %s, last modified on date %s");
850 ccm_attrs[vindex].fmt = CCMFMT_S1S2;
851
852 vindex = ccm_vis_index (CCM_COMPVER);
853 ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL;
854 ccm_attrs[vindex].name = "CCM_COMPVER";
855 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
856 "Component %s, version %s");
857 ccm_attrs[vindex].fmt = CCMFMT_S1S2;
858
859 vindex = ccm_vis_index (CCM_COMPDATE);
860 ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL;
861 ccm_attrs[vindex].name = "CCM_COMPDATE";
862 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
863 "Compilation date %s");
864 ccm_attrs[vindex].fmt = CCMFMT_S1;
865
866 vindex = ccm_vis_index (CCM_COMPOPT);
867 ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL;
868 ccm_attrs[vindex].name = "CCM_COMPOPT";
869 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
870 "Compilation options %s");
871 ccm_attrs[vindex].fmt = CCMFMT_S1;
872
873 vindex = ccm_vis_index (CCM_ACOMPOPT);
874 ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
875 ccm_attrs[vindex].name = "CCM_ACOMPOPT";
876 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
877 "Actual Compilation options %s");
878 ccm_attrs[vindex].fmt = CCMFMT_S1;
879
880 vindex = ccm_vis_index (CCM_VAR_ALIAS);
881 ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
882 ccm_attrs[vindex].name = "CCM_VAR_ALIAS";
883 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
884 "Variable %s aliased to %s");
885 ccm_attrs[vindex].fmt = CCMFMT_V1V2;
886
887 vindex = ccm_vis_index (CCM_FBIRDIFF);
888 ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC;
889 ccm_attrs[vindex].name = "CCM_FBIRDIFF";
890 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
891 "Profile feedback data inconsistent with"
892 " intermediate representation file; check compiler"
893 " version, flags and source file");
894 ccm_attrs[vindex].fmt = CCMFMT_NONE;
895
896 vindex = ccm_vis_index (CCM_OPTRED_SWAP);
897 ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC;
898 ccm_attrs[vindex].name = "CCM_OPTRED_SWAP";
899 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
900 "Optimization level for %s reduced from %d to"
901 " %d due to insufficient swap space");
902 ccm_attrs[vindex].fmt = CCMFMT_P1I2I3;
903
904 vindex = ccm_vis_index (CCM_OPTRED_CPLX);
905 ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC;
906 ccm_attrs[vindex].name = "CCM_OPTRED_CPLX";
907 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
908 "Optimization level for %s reduced from %d to"
909 " %d due to program complexity");
910 ccm_attrs[vindex].fmt = CCMFMT_P1I2I3;
911
912 vindex = ccm_vis_index (CCM_UNKNOWN);
913 ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC;
914 ccm_attrs[vindex].name = "CCM_UNKNOWN";
915 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
916 "Unexpected compiler comment %d");
917 ccm_attrs[vindex].fmt = CCMFMT_I1;
918
919 vindex = ccm_vis_index (CCM_UNPAR_CALL);
920 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
921 ccm_attrs[vindex].name = "CCM_UNPAR_CALL";
922 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
923 "Loop below not parallelized because it contains a"
924 " call to %s");
925 ccm_attrs[vindex].fmt = CCMFMT_P1;
926
927 vindex = ccm_vis_index (CCM_PAR_SER);
928 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_OBS;
929 ccm_attrs[vindex].name = "CCM_PAR_SER";
930 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
931 "Both serial and parallel versions generated for"
932 " loop below");
933 ccm_attrs[vindex].fmt = CCMFMT_NONE;
934
935 vindex = ccm_vis_index (CCM_PAR_SER_VER);
936 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_OBS;
937 ccm_attrs[vindex].name = "CCM_PAR_SER_VER";
938 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
939 "Both serial and parallel versions generated for"
940 " loop below; with parallel version used if %s,"
941 " serial otherwise");
942 ccm_attrs[vindex].fmt = CCMFMT_S1;
943
944 vindex = ccm_vis_index (CCM_PAR_DRECTV);
945 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
946 ccm_attrs[vindex].name = "CCM_PAR_DRECTV";
947 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
948 "Loop below parallelized by explicit user"
949 " directive");
950 ccm_attrs[vindex].fmt = CCMFMT_NONE;
951
952 vindex = ccm_vis_index (CCM_APAR);
953 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
954 ccm_attrs[vindex].name = "CCM_APAR";
955 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
956 "Loop below autoparallelized");
957 ccm_attrs[vindex].fmt = CCMFMT_NONE;
958
959 vindex = ccm_vis_index (CCM_AUTOPAR);
960 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT;
961 ccm_attrs[vindex].name = "CCM_AUTOPAR";
962 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
963 "Loop below autoparallelized; equivalent"
964 " explict directive is %s");
965 ccm_attrs[vindex].fmt = CCMFMT_S1;
966
967 vindex = ccm_vis_index (CCM_UNPAR_DD);
968 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
969 ccm_attrs[vindex].name = "CCM_UNPAR_DD";
970 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
971 "Loop below could not be parallelized because of a"
972 " data dependency on %s");
973 ccm_attrs[vindex].fmt = CCMFMT_VV1;
974
975 vindex = ccm_vis_index (CCM_UNPAR_DDA);
976 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
977 ccm_attrs[vindex].name = "CCM_UNPAR_DDA";
978 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
979 "Loop below could not be parallelized because of a"
980 " data dependency or aliasing of %s");
981 ccm_attrs[vindex].fmt = CCMFMT_VV1;
982
983 vindex = ccm_vis_index (CCM_UNPAR_ANONDD);
984 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
985 ccm_attrs[vindex].name = "CCM_UNPAR_ANONDD";
986 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
987 "Loop below could not be parallelized because of"
988 " an anonymous data dependency");
989 ccm_attrs[vindex].fmt = CCMFMT_NONE;
990
991 vindex = ccm_vis_index (CCM_UNPAR_ANONDDA);
992 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
993 ccm_attrs[vindex].name = "CCM_UNPAR_ANONDDA";
994 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
995 "Loop below could not be parallelized because of"
996 " an anonymous data dependency or aliasing");
997 ccm_attrs[vindex].fmt = CCMFMT_NONE;
998
999 vindex = ccm_vis_index (CCM_PAR_WORK);
1000 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1001 ccm_attrs[vindex].name = "CCM_PAR_WORK";
1002 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1003 "Loop below parallelized, but might not contain"
1004 " enough work to be efficiently run in parallel");
1005 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1006
1007 vindex = ccm_vis_index (CCM_UNPAR_EXIT);
1008 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1009 ccm_attrs[vindex].name = "CCM_UNPAR_EXIT";
1010 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1011 "Loop below not parallelized because it contains"
1012 " multiple exit points");
1013 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1014
1015 vindex = ccm_vis_index (CCM_UNPAR_STRNG);
1016 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1017 ccm_attrs[vindex].name = "CCM_UNPAR_STRNG";
1018 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1019 "Loop below not parallelized because it contains a"
1020 " strange flow of control");
1021 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1022
1023 vindex = ccm_vis_index (CCM_UNPAR_IO);
1024 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1025 ccm_attrs[vindex].name = "CCM_UNPAR_IO";
1026 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1027 "Loop below not parallelized because it contains"
1028 " I/O or other MT-unsafe calls");
1029 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1030
1031 vindex = ccm_vis_index (CCM_PAR_BODY_NAME);
1032 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_OBS;
1033 ccm_attrs[vindex].name = "CCM_PAR_BODY_NAME";
1034 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1035 "Parallel loop-body code is in function %s");
1036 ccm_attrs[vindex].fmt = CCMFMT_P1;
1037
1038 vindex = ccm_vis_index (CCM_UNPAR_NLOOPIDX);
1039 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1040 ccm_attrs[vindex].name = "CCM_UNPAR_NLOOPIDX";
1041 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1042 "Loop below not parallelized because loop index"
1043 " not found");
1044 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1045
1046 vindex = ccm_vis_index (CCM_UNPAR_DRECTV);
1047 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1048 ccm_attrs[vindex].name = "CCM_UNPAR_DRECTV";
1049 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1050 "Loop below not parallelized because of explicit"
1051 " user directive");
1052 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1053
1054 vindex = ccm_vis_index (CCM_UNPAR_NOTPROFIT);
1055 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1056 ccm_attrs[vindex].name = "CCM_UNPAR_NOTPROFIT";
1057 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1058 "Loop below not parallelized because it was not"
1059 " profitable to do so");
1060 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1061
1062 vindex = ccm_vis_index (CCM_UNPAR_NEST);
1063 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1064 ccm_attrs[vindex].name = "CCM_UNPAR_NEST";
1065 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1066 "Loop below not parallelized because it was"
1067 " nested in a parallel loop");
1068 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1069
1070 vindex = ccm_vis_index (CCM_UNPAR);
1071 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1072 ccm_attrs[vindex].name = "CCM_UNPAR";
1073 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1074 "Loop below not parallelized");
1075 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1076
1077 vindex = ccm_vis_index (CCM_UNPAR_NOAUTO);
1078 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1079 ccm_attrs[vindex].name = "CCM_UNPAR_NOAUTO";
1080 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1081 "Loop below not parallelized because"
1082 " autoparallelization is not enabled");
1083 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1084
1085 vindex = ccm_vis_index (CCM_PR_L_VAR);
1086 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1087 ccm_attrs[vindex].name = "CCM_PR_L_VAR";
1088 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1089 "Private variables in loop below:"
1090 " %s");
1091 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1092
1093 vindex = ccm_vis_index (CCM_SH_L_VAR);
1094 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1095 ccm_attrs[vindex].name = "CCM_SH_L_VAR";
1096 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1097 "Shared variables in loop below:"
1098 " %s");
1099 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1100
1101 vindex = ccm_vis_index (CCM_TP_L_VAR);
1102 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1103 ccm_attrs[vindex].name = "CCM_TP_L_VAR";
1104 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1105 "Threadprivate variables in loop below:"
1106 " %s");
1107 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1108
1109 vindex = ccm_vis_index (CCM_RV_L_VAR);
1110 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1111 ccm_attrs[vindex].name = "CCM_RV_L_VAR";
1112 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1113 "Reduction variables in loop below:"
1114 " %s");
1115 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1116
1117 vindex = ccm_vis_index (CCM_IM_L_VAR);
1118 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1119 ccm_attrs[vindex].name = "CCM_IM_L_VAR";
1120 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1121 "Implicit variables in loop below:"
1122 " %s");
1123 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1124
1125 vindex = ccm_vis_index (CCM_PR_O_VAR);
1126 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1127 ccm_attrs[vindex].name = "CCM_PR_O_VAR";
1128 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1129 "Private variables in OpenMP construct below:"
1130 " %s");
1131 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1132
1133 vindex = ccm_vis_index (CCM_SH_O_VAR);
1134 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1135 ccm_attrs[vindex].name = "CCM_SH_O_VAR";
1136 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1137 "Shared variables in OpenMP construct below:"
1138 " %s");
1139 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1140
1141 vindex = ccm_vis_index (CCM_TP_O_VAR);
1142 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1143 ccm_attrs[vindex].name = "CCM_TP_O_VAR";
1144 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1145 "Threadprivate variables in OpenMP construct"
1146 " below: %s");
1147 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1148
1149 vindex = ccm_vis_index (CCM_RV_O_VAR);
1150 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1151 ccm_attrs[vindex].name = "CCM_RV_O_VAR";
1152 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1153 "Reduction variables in OpenMP construct below:"
1154 " %s");
1155 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1156
1157 vindex = ccm_vis_index (CCM_IM_O_VAR);
1158 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1159 ccm_attrs[vindex].name = "CCM_IM_O_VAR";
1160 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1161 "Implicit variables in OpenMP construct below:"
1162 " %s");
1163 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1164
1165 vindex = ccm_vis_index (CCM_UNPAR_IN_OMP);
1166 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1167 ccm_attrs[vindex].name = "CCM_UNPAR_IN_OMP";
1168 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1169 "Loop below not parallelized because it is inside"
1170 " an OpenMP region");
1171 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1172
1173 vindex = ccm_vis_index (CCM_FP_O_VAR);
1174 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1175 ccm_attrs[vindex].name = "CCM_FP_O_VAR";
1176 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1177 "Firstprivate variables in OpenMP construct below:"
1178 " %s");
1179 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1180
1181 vindex = ccm_vis_index (CCM_LP_O_VAR);
1182 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1183 ccm_attrs[vindex].name = "CCM_LP_O_VAR";
1184 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1185 "Lastprivate variables in OpenMP construct below:"
1186 " %s");
1187 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1188
1189 vindex = ccm_vis_index (CCM_CP_O_VAR);
1190 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1191 ccm_attrs[vindex].name = "CCM_CP_O_VAR";
1192 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1193 "Copyprivate variables in OpenMP construct below:"
1194 " %s");
1195 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1196
1197 vindex = ccm_vis_index (CCM_PR_OAS_VAR);
1198 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1199 ccm_attrs[vindex].name = "CCM_PR_OAS_VAR";
1200 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1201 "Variables autoscoped as PRIVATE in OpenMP"
1202 " construct below: %s");
1203 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1204
1205 vindex = ccm_vis_index (CCM_SH_OAS_VAR);
1206 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1207 ccm_attrs[vindex].name = "CCM_SH_OAS_VAR";
1208 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1209 "Variables autoscoped as SHARED in OpenMP"
1210 " construct below: %s");
1211 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1212
1213 vindex = ccm_vis_index (CCM_FP_OAS_VAR);
1214 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1215 ccm_attrs[vindex].name = "CCM_FP_OAS_VAR";
1216 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1217 "Variables autoscoped as FIRSTPRIVATE in OpenMP"
1218 " construct below: %s");
1219 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1220
1221 vindex = ccm_vis_index (CCM_LP_OAS_VAR);
1222 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1223 ccm_attrs[vindex].name = "CCM_LP_OAS_VAR";
1224 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1225 "Variables autoscoped as LASTPRIVATE in OpenMP"
1226 " construct below: %s");
1227 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1228
1229 vindex = ccm_vis_index (CCM_RV_OAS_VAR);
1230 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1231 ccm_attrs[vindex].name = "CCM_RV_OAS_VAR";
1232 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1233 "Variables autoscoped as REDUCTION in OpenMP"
1234 " construct below: %s");
1235 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1236
1237 vindex = ccm_vis_index (CCM_FAIL_OAS_VAR);
1238 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN | CCMV_OBS;
1239 ccm_attrs[vindex].name = "CCM_FAIL_OAS_VAR";
1240 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1241 "Variables cannot be autoscoped in OpenMP"
1242 " construct below: %s");
1243 ccm_attrs[vindex].fmt = CCMFMT_VV1;
1244
1245 vindex = ccm_vis_index (CCM_SERIALIZE_OAS);
1246 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN | CCMV_OBS;
1247 ccm_attrs[vindex].name = "CCM_SERIALIZE_OAS";
1248 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1249 "OpenMP parallel region below is serialized"
1250 " because autoscoping has failed");
1251 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1252
1253 vindex = ccm_vis_index (CCM_UNPAR_CALL_2);
1254 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1255 ccm_attrs[vindex].name = "CCM_UNPAR_CALL_2";
1256 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1257 "%s not parallelized because it contains calls"
1258 " to: %s");
1259 ccm_attrs[vindex].fmt = CCMFMT_L1PP2;
1260
1261 vindex = ccm_vis_index (CCM_PAR_DRECTV_2);
1262 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1263 ccm_attrs[vindex].name = "CCM_PAR_DRECTV_2";
1264 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1265 "%s parallelized by explicit user directive");
1266 ccm_attrs[vindex].fmt = CCMFMT_L1;
1267
1268 vindex = ccm_vis_index (CCM_APAR_2);
1269 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1270 ccm_attrs[vindex].name = "CCM_APAR_2";
1271 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1272 "%s autoparallelized");
1273 ccm_attrs[vindex].fmt = CCMFMT_L1;
1274
1275 vindex = ccm_vis_index (CCM_AUTOPAR_2);
1276 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT;
1277 ccm_attrs[vindex].name = "CCM_AUTOPAR_2";
1278 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1279 "%s autoparallelized; equivalent"
1280 " explict directive is %s");
1281 ccm_attrs[vindex].fmt = CCMFMT_L1S2;
1282
1283 vindex = ccm_vis_index (CCM_UNPAR_DD_2);
1284 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1285 ccm_attrs[vindex].name = "CCM_UNPAR_DD_2";
1286 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1287 "%s could not be parallelized because of"
1288 " data dependences on: %s");
1289 ccm_attrs[vindex].fmt = CCMFMT_L1VV2;
1290
1291 vindex = ccm_vis_index (CCM_UNPAR_DDA_2);
1292 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1293 ccm_attrs[vindex].name = "CCM_UNPAR_DDA_2";
1294 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1295 "%s could not be parallelized because of a"
1296 " data dependence or aliasing of: %s");
1297 ccm_attrs[vindex].fmt = CCMFMT_L1VV2;
1298
1299 vindex = ccm_vis_index (CCM_UNPAR_ANONDD_2);
1300 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1301 ccm_attrs[vindex].name = "CCM_UNPAR_ANONDD_2";
1302 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1303 "%s could not be parallelized because of an"
1304 " anonymous data dependence");
1305 ccm_attrs[vindex].fmt = CCMFMT_L1;
1306
1307 vindex = ccm_vis_index (CCM_UNPAR_ANONDDA_2);
1308 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1309 ccm_attrs[vindex].name = "CCM_UNPAR_ANONDDA_2";
1310 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1311 "%s could not be parallelized because of an"
1312 " anonymous data dependence or aliasing");
1313 ccm_attrs[vindex].fmt = CCMFMT_L1;
1314
1315 vindex = ccm_vis_index (CCM_PAR_WORK_2);
1316 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1317 ccm_attrs[vindex].name = "CCM_PAR_WORK_2";
1318 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1319 "%s parallelized, but might not contain"
1320 " enough work to run efficiently in parallel");
1321 ccm_attrs[vindex].fmt = CCMFMT_L1;
1322
1323 vindex = ccm_vis_index (CCM_UNPAR_EXIT_2);
1324 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1325 ccm_attrs[vindex].name = "CCM_UNPAR_EXIT_2";
1326 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1327 "%s not parallelized because it contains"
1328 " multiple exit points");
1329 ccm_attrs[vindex].fmt = CCMFMT_L1;
1330
1331 vindex = ccm_vis_index (CCM_UNPAR_STRANGE_2);
1332 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1333 ccm_attrs[vindex].name = "CCM_UNPAR_STRANGE_2";
1334 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1335 "%s not parallelized because it contains a"
1336 " strange flow of control");
1337 ccm_attrs[vindex].fmt = CCMFMT_L1;
1338
1339 vindex = ccm_vis_index (CCM_UNPAR_IO_2);
1340 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1341 ccm_attrs[vindex].name = "CCM_UNPAR_IO_2";
1342 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1343 "%s not parallelized because it contains"
1344 " I/O or other MT-unsafe calls");
1345 ccm_attrs[vindex].fmt = CCMFMT_L1;
1346
1347 vindex = ccm_vis_index (CCM_PAR_BODY_NAME_2);
1348 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP;
1349 ccm_attrs[vindex].name = "CCM_PAR_BODY_NAME_2";
1350 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1351 "%s parallel loop-body code placed in"
1352 " function %s along with %d inner loops");
1353 ccm_attrs[vindex].fmt = CCMFMT_L1P2I3;
1354
1355 vindex = ccm_vis_index (CCM_UNPAR_NLOOPIDX_2);
1356 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1357 ccm_attrs[vindex].name = "CCM_UNPAR_NLOOPIDX_2";
1358 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1359 "%s not parallelized because loop index not"
1360 " found");
1361 ccm_attrs[vindex].fmt = CCMFMT_L1;
1362
1363 vindex = ccm_vis_index (CCM_UNPAR_DRECTV_2);
1364 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1365 ccm_attrs[vindex].name = "CCM_UNPAR_DRECTV_2";
1366 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1367 "%s not parallelized because of explicit"
1368 " user directive");
1369 ccm_attrs[vindex].fmt = CCMFMT_L1;
1370
1371 vindex = ccm_vis_index (CCM_UNPAR_NOTPROFIT_2);
1372 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1373 ccm_attrs[vindex].name = "CCM_UNPAR_NOTPROFIT_2";
1374 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1375 "%s not parallelized because it was not"
1376 " profitable to do so");
1377 ccm_attrs[vindex].fmt = CCMFMT_L1;
1378
1379 vindex = ccm_vis_index (CCM_UNPAR_NEST_2);
1380 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1381 ccm_attrs[vindex].name = "CCM_UNPAR_NEST_2";
1382 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1383 "%s not parallelized because it was"
1384 " nested within a parallel loop");
1385 ccm_attrs[vindex].fmt = CCMFMT_L1;
1386
1387 vindex = ccm_vis_index (CCM_UNPAR_2);
1388 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1389 ccm_attrs[vindex].name = "CCM_UNPAR_2";
1390 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1391 "%s not parallelized");
1392 ccm_attrs[vindex].fmt = CCMFMT_L1;
1393
1394 vindex = ccm_vis_index (CCM_UNPAR_NOAUTO_2);
1395 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1396 ccm_attrs[vindex].name = "CCM_UNPAR_NOAUTO_2";
1397 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1398 "%s not parallelized because"
1399 " autoparallelization is not enabled");
1400 ccm_attrs[vindex].fmt = CCMFMT_L1;
1401
1402 vindex = ccm_vis_index (CCM_PR_L_VAR_2);
1403 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1404 ccm_attrs[vindex].name = "CCM_PR_L_VAR_2";
1405 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1406 "Private variables in %s:"
1407 " %s");
1408 ccm_attrs[vindex].fmt = CCMFMT_L1VV2;
1409
1410 vindex = ccm_vis_index (CCM_SH_L_VAR_2);
1411 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1412 ccm_attrs[vindex].name = "CCM_SH_L_VAR_2";
1413 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1414 "Shared variables in %s:"
1415 " %s");
1416 ccm_attrs[vindex].fmt = CCMFMT_L1VV2;
1417
1418 vindex = ccm_vis_index (CCM_TP_L_VAR_2);
1419 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1420 ccm_attrs[vindex].name = "CCM_TP_L_VAR_2";
1421 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1422 "Threadprivate variables in %s:"
1423 " %s");
1424 ccm_attrs[vindex].fmt = CCMFMT_L1VV2;
1425
1426 vindex = ccm_vis_index (CCM_RV_L_VAR_2);
1427 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1428 ccm_attrs[vindex].name = "CCM_RV_L_VAR_2";
1429 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1430 "Reduction variables of operator %s in %s:"
1431 " %s");
1432 ccm_attrs[vindex].fmt = CCMFMT_S1L2VV3;
1433
1434 vindex = ccm_vis_index (CCM_IM_L_VAR_2);
1435 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1436 ccm_attrs[vindex].name = "CCM_IM_L_VAR_2";
1437 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1438 "Implicit variables in %s:"
1439 " %s");
1440 ccm_attrs[vindex].fmt = CCMFMT_L1VV2;
1441
1442 vindex = ccm_vis_index (CCM_PR_O_VAR_2);
1443 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1444 ccm_attrs[vindex].name = "CCM_PR_O_VAR_2";
1445 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1446 "Private variables in %s: %s");
1447 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1448
1449 vindex = ccm_vis_index (CCM_SH_O_VAR_2);
1450 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1451 ccm_attrs[vindex].name = "CCM_SH_O_VAR_2";
1452 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1453 "Shared variables in %s: %s");
1454 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1455
1456 vindex = ccm_vis_index (CCM_TP_O_VAR_2);
1457 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1458 ccm_attrs[vindex].name = "CCM_TP_O_VAR_2";
1459 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1460 "Threadprivate variables in %s: %s");
1461 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1462
1463 vindex = ccm_vis_index (CCM_RV_O_VAR_2);
1464 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1465 ccm_attrs[vindex].name = "CCM_RV_O_VAR_2";
1466 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1467 "Reduction variables of operator %s in %s:"
1468 " %s");
1469 ccm_attrs[vindex].fmt = CCMFMT_S1R2VV3;
1470
1471 vindex = ccm_vis_index (CCM_IM_O_VAR_2);
1472 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1473 ccm_attrs[vindex].name = "CCM_IM_O_VAR_2";
1474 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1475 "Implicit variables in %s: %s");
1476 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1477
1478 vindex = ccm_vis_index (CCM_UNPAR_IN_OMP_2);
1479 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1480 ccm_attrs[vindex].name = "CCM_UNPAR_IN_OMP_2";
1481 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1482 "%s not parallelized because it is inside"
1483 " OpenMP region %s");
1484 ccm_attrs[vindex].fmt = CCMFMT_L1R2;
1485
1486 vindex = ccm_vis_index (CCM_FP_O_VAR_2);
1487 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1488 ccm_attrs[vindex].name = "CCM_FP_O_VAR_2";
1489 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1490 "Firstprivate variables in %s: %s");
1491 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1492
1493 vindex = ccm_vis_index (CCM_LP_O_VAR_2);
1494 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1495 ccm_attrs[vindex].name = "CCM_LP_O_VAR_2";
1496 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1497 "Lastprivate variables in %s: %s");
1498 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1499
1500 vindex = ccm_vis_index (CCM_CP_O_VAR_2);
1501 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1502 ccm_attrs[vindex].name = "CCM_CP_O_VAR_2";
1503 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1504 "Copyprivate variables in %s:"
1505 " %s");
1506 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1507
1508 vindex = ccm_vis_index (CCM_PR_OAS_VAR_2);
1509 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1510 ccm_attrs[vindex].name = "CCM_PR_OAS_VAR_2";
1511 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1512 "Variables autoscoped as PRIVATE in %s:"
1513 " %s");
1514 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1515
1516 vindex = ccm_vis_index (CCM_SH_OAS_VAR_2);
1517 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1518 ccm_attrs[vindex].name = "CCM_SH_OAS_VAR_2";
1519 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1520 "Variables autoscoped as SHARED in %s: %s");
1521 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1522
1523 vindex = ccm_vis_index (CCM_FP_OAS_VAR_2);
1524 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1525 ccm_attrs[vindex].name = "CCM_FP_OAS_VAR_2";
1526 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1527 "Variables autoscoped as FIRSTPRIVATE in %s:"
1528 " %s");
1529 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1530
1531 vindex = ccm_vis_index (CCM_LP_OAS_VAR_2);
1532 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1533 ccm_attrs[vindex].name = "CCM_LP_OAS_VAR_2";
1534 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1535 "Variables autoscoped as LASTPRIVATE in %s:"
1536 " %s");
1537 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1538
1539 vindex = ccm_vis_index (CCM_RV_OAS_VAR_2);
1540 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1541 ccm_attrs[vindex].name = "CCM_RV_OAS_VAR_2";
1542 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1543 "Variables autoscoped as REDUCTION of operator"
1544 " %s in %s: %s");
1545 ccm_attrs[vindex].fmt = CCMFMT_S1R2VV3;
1546
1547 vindex = ccm_vis_index (CCM_FAIL_OAS_VAR_2);
1548 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN;
1549 ccm_attrs[vindex].name = "CCM_FAIL_OAS_VAR_2";
1550 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1551 "Variables treated as shared because they cannot"
1552 " be autoscoped in %s: %s");
1553 ccm_attrs[vindex].fmt = CCMFMT_R1VV2;
1554
1555 vindex = ccm_vis_index (CCM_SERIALIZE_OAS_2);
1556 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN;
1557 ccm_attrs[vindex].name = "CCM_SERIALIZE_OAS_2";
1558 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1559 "%s will be executed by a single thread because"
1560 " autoscoping for some variables was not successful");
1561 ccm_attrs[vindex].fmt = CCMFMT_R1;
1562
1563 vindex = ccm_vis_index (CCM_QPERMVEC);
1564 ccm_attrs[vindex].vis = CCMV_QUERY | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
1565 ccm_attrs[vindex].name = "CCM_QPERMVEC";
1566 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1567 "Is %s a permutation vector during execution of"
1568 " %s?");
1569 ccm_attrs[vindex].fmt = CCMFMT_V1L2;
1570
1571 vindex = ccm_vis_index (CCM_QEXPR);
1572 ccm_attrs[vindex].vis = CCMV_QUERY | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
1573 ccm_attrs[vindex].name = "CCM_QEXPR";
1574 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1575 "Is expression %s true for %s?");
1576 ccm_attrs[vindex].fmt = CCMFMT_S1L2;
1577
1578 vindex = ccm_vis_index (CCM_QSAFECALL);
1579 ccm_attrs[vindex].vis = CCMV_QUERY | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
1580 ccm_attrs[vindex].name = "CCM_QSAFECALL";
1581 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1582 "Is subroutine %s MP-safe as used in %s?");
1583 ccm_attrs[vindex].fmt = CCMFMT_P1L2;
1584
1585 vindex = ccm_vis_index (CCM_LCOST);
1586 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1587 ccm_attrs[vindex].name = "CCM_LCOST";
1588 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1589 "Loop below estimated to cost %d cycles per"
1590 " iteration");
1591 ccm_attrs[vindex].fmt = CCMFMT_I1;
1592
1593 vindex = ccm_vis_index (CCM_UNROLL);
1594 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1595 ccm_attrs[vindex].name = "CCM_UNROLL";
1596 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1597 "Loop below unrolled %d times");
1598 ccm_attrs[vindex].fmt = CCMFMT_I1;
1599
1600 vindex = ccm_vis_index (CCM_IMIX);
1601 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1602 ccm_attrs[vindex].name = "CCM_IMIX";
1603 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1604 "Loop below has %d loads, %d stores,"
1605 " %d prefetches, %d FPadds, %d FPmuls, and"
1606 " %d FPdivs per iteration");
1607 ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4I5I6;
1608
1609 vindex = ccm_vis_index (CCM_SPILLS);
1610 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT | CCMV_OBS;
1611 ccm_attrs[vindex].name = "CCM_SPILLS";
1612 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1613 "Loop below required %d integer register spills,"
1614 " %d FP register spills, and used"
1615 " %d integer registers and %d FP registers");
1616 ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4;
1617
1618 vindex = ccm_vis_index (CCM_LFISSION);
1619 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1620 ccm_attrs[vindex].name = "CCM_LFISSION";
1621 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1622 "Loop below fissioned into %d loops");
1623 ccm_attrs[vindex].fmt = CCMFMT_I1;
1624
1625 vindex = ccm_vis_index (CCM_LPEEL);
1626 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1627 ccm_attrs[vindex].name = "CCM_LPEEL";
1628 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1629 "Loop below had iterations peeled off for better"
1630 " unrolling and/or parallelization");
1631 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1632
1633 vindex = ccm_vis_index (CCM_LBLOCKED);
1634 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1635 ccm_attrs[vindex].name = "CCM_LBLOCKED";
1636 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1637 "Loop below blocked by %d for improved cache"
1638 " performance");
1639 ccm_attrs[vindex].fmt = CCMFMT_I1;
1640
1641 vindex = ccm_vis_index (CCM_LTILED);
1642 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1643 ccm_attrs[vindex].name = "CCM_LTILED";
1644 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1645 "Loop below tiled for better performance");
1646 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1647
1648 vindex = ccm_vis_index (CCM_LUNRJAM);
1649 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1650 ccm_attrs[vindex].name = "CCM_LUNRJAM";
1651 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1652 "Loop below unrolled and jammed");
1653 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1654
1655 vindex = ccm_vis_index (CCM_LWHILE2DO);
1656 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1657 ccm_attrs[vindex].name = "CCM_LWHILE2DO";
1658 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1659 "Bounds test for loop below moved to top of loop");
1660 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1661
1662 vindex = ccm_vis_index (CCM_L2CALL);
1663 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1664 ccm_attrs[vindex].name = "CCM_L2CALL";
1665 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1666 "Loop below replaced by a call to %s");
1667 ccm_attrs[vindex].fmt = CCMFMT_P1;
1668
1669 vindex = ccm_vis_index (CCM_LDEAD);
1670 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1671 ccm_attrs[vindex].name = "CCM_LDEAD";
1672 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1673 "Loop below deleted as dead code");
1674 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1675
1676 vindex = ccm_vis_index (CCM_LINTRCHNG);
1677 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1678 ccm_attrs[vindex].name = "CCM_LINTRCHNG";
1679 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1680 "Loop below interchanged with loop on line %d");
1681 ccm_attrs[vindex].fmt = CCMFMT_I1;
1682
1683 vindex = ccm_vis_index (CCM_FUSEDTO);
1684 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1685 ccm_attrs[vindex].name = "CCM_FUSEDTO";
1686 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1687 "Loop below fused with loop on line %d");
1688 ccm_attrs[vindex].fmt = CCMFMT_I1;
1689
1690 vindex = ccm_vis_index (CCM_FUSEDFROM);
1691 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1692 ccm_attrs[vindex].name = "CCM_FUSEDFROM";
1693 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1694 "Loop from line %d fused with loop below");
1695 ccm_attrs[vindex].fmt = CCMFMT_I1;
1696
1697 vindex = ccm_vis_index (CCM_VECINTRNSC);
1698 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1699 ccm_attrs[vindex].name = "CCM_VECINTRNSC";
1700 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1701 "Loop below transformed to use calls to vector"
1702 " intrinsic %s");
1703 ccm_attrs[vindex].fmt = CCMFMT_PP1;
1704
1705 vindex = ccm_vis_index (CCM_LSTRIPMINE);
1706 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1707 ccm_attrs[vindex].name = "CCM_LSTRIPMINE";
1708 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1709 "Loop below strip-mined");
1710 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1711
1712 vindex = ccm_vis_index (CCM_LNEST2LOOPS);
1713 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1714 ccm_attrs[vindex].name = "CCM_LNEST2LOOPS";
1715 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1716 "Loop below collapsed with loop on line %d");
1717 ccm_attrs[vindex].fmt = CCMFMT_I1;
1718
1719 vindex = ccm_vis_index (CCM_LREVERSE);
1720 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1721 ccm_attrs[vindex].name = "CCM_LREVERSE";
1722 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1723 "Loop below has had its iteration direction"
1724 " reversed");
1725 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1726
1727 vindex = ccm_vis_index (CCM_IMIX2);
1728 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1729 ccm_attrs[vindex].name = "CCM_IMIX2";
1730 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1731 "Loop below has %d loads, %d stores,"
1732 " %d prefetches, %d FPadds, %d FPmuls,"
1733 " %d FPdivs, %d FPsubs, and %d FPsqrts per"
1734 " iteration");
1735 ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4I5I6I7I8;
1736
1737 vindex = ccm_vis_index (CCM_LUNRFULL);
1738 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1739 ccm_attrs[vindex].name = "CCM_LUNRFULL";
1740 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1741 "Loop below fully unrolled");
1742 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1743
1744 vindex = ccm_vis_index (CCM_ELIM_NOAMORTINST);
1745 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1746 ccm_attrs[vindex].name = "CCM_ELIM_NOAMORTINST";
1747 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1748 "Loop below was eliminated as it contains no"
1749 " non-amortizable instructions");
1750 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1751
1752 vindex = ccm_vis_index (CCM_COMP_DALIGN);
1753 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1754 ccm_attrs[vindex].name = "CCM_COMP_DALIGN";
1755 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1756 "Performance of loop below could be improved"
1757 " by compiling with -dalign");
1758 ccm_attrs[vindex].fmt = CCMFMT_NONE;
1759
1760 vindex = ccm_vis_index (CCM_INTIMIX);
1761 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1762 ccm_attrs[vindex].name = "CCM_INTIMIX";
1763 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1764 "Loop below has %d int-loads, %d int-stores,"
1765 " %d alu-ops, %d muls, %d int-divs and"
1766 " %d shifts per iteration");
1767 ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4I5I6;
1768
1769 vindex = ccm_vis_index (CCM_LMULTI_VERSION);
1770 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1771 ccm_attrs[vindex].name = "CCM_LMULTI_VERSION";
1772 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1773 "%s multi-versioned. Specialized version"
1774 " is %s");
1775 ccm_attrs[vindex].fmt = CCMFMT_L1L2;
1776
1777 vindex = ccm_vis_index (CCM_LCOST_2);
1778 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1779 ccm_attrs[vindex].name = "CCM_LCOST_2";
1780 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1781 "%s estimated to cost %d cycles per iteration");
1782 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
1783
1784 vindex = ccm_vis_index (CCM_UNROLL_2);
1785 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1786 ccm_attrs[vindex].name = "CCM_UNROLL_2";
1787 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1788 "%s unrolled %d times");
1789 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
1790
1791 vindex = ccm_vis_index (CCM_IMIX_B);
1792 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
1793 ccm_attrs[vindex].name = "CCM_IMIX_B";
1794 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1795 "%s has %d loads, %d stores,"
1796 " %d prefetches, %d FPadds, %d FPmuls, and"
1797 " %d FPdivs per iteration");
1798 ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7;
1799
1800 vindex = ccm_vis_index (CCM_SPILLS_2);
1801 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT;
1802 ccm_attrs[vindex].name = "CCM_SPILLS_2";
1803 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1804 "%s required %d integer register spills,"
1805 " %d FP register spills, and used"
1806 " %d integer registers and %d FP registers");
1807 ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5;
1808
1809 vindex = ccm_vis_index (CCM_LFISSION_2);
1810 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1811 ccm_attrs[vindex].name = "CCM_LFISSION_2";
1812 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1813 "%s fissioned into %d loops, generating:"
1814 " %s");
1815 ccm_attrs[vindex].fmt = CCMFMT_L1I2LL3;
1816
1817 vindex = ccm_vis_index (CCM_LFISSION_FRAG);
1818 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1819 ccm_attrs[vindex].name = "CCM_LFISSION_FRAG";
1820 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1821 "%s contains code from lines: %s");
1822 ccm_attrs[vindex].fmt = CCMFMT_L1II2;
1823
1824 vindex = ccm_vis_index (CCM_LPEEL_2);
1825 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1826 ccm_attrs[vindex].name = "CCM_LPEEL_2";
1827 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1828 "%s had iterations peeled off for better"
1829 " unrolling and/or parallelization");
1830 ccm_attrs[vindex].fmt = CCMFMT_L1;
1831
1832 vindex = ccm_vis_index (CCM_LBLOCKED_2);
1833 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1834 ccm_attrs[vindex].name = "CCM_LBLOCKED_2";
1835 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1836 "%s blocked by %d for improved memory"
1837 " hierarchy performance, new inner loop %s");
1838 ccm_attrs[vindex].fmt = CCMFMT_L1I2L3;
1839
1840 vindex = ccm_vis_index (CCM_LOUTER_UNROLL);
1841 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1842 ccm_attrs[vindex].name = "CCM_LOUTER_UNROLL";
1843 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1844 "%s is outer-unrolled %d times as part"
1845 " of unroll and jam");
1846 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
1847
1848 vindex = ccm_vis_index (CCM_LJAMMED);
1849 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1850 ccm_attrs[vindex].name = "CCM_LJAMMED";
1851 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1852 "All %d copies of %s are fused together"
1853 " as part of unroll and jam");
1854 ccm_attrs[vindex].fmt = CCMFMT_I1L2;
1855
1856 vindex = ccm_vis_index (CCM_LWHILE2DO_2);
1857 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1858 ccm_attrs[vindex].name = "CCM_LWHILE2DO_2";
1859 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1860 "Bounds test for %s moved to top of loop");
1861 ccm_attrs[vindex].fmt = CCMFMT_L1;
1862
1863 vindex = ccm_vis_index (CCM_L2CALL_2);
1864 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1865 ccm_attrs[vindex].name = "CCM_L2CALL_2";
1866 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1867 "%s replaced by a call to %s");
1868 ccm_attrs[vindex].fmt = CCMFMT_L1P2;
1869
1870 vindex = ccm_vis_index (CCM_LDEAD_2);
1871 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1872 ccm_attrs[vindex].name = "CCM_LDEAD_2";
1873 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1874 "%s deleted as dead code");
1875 ccm_attrs[vindex].fmt = CCMFMT_L1;
1876
1877 vindex = ccm_vis_index (CCM_LINTRCHNG_2);
1878 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1879 ccm_attrs[vindex].name = "CCM_LINTRCHNG_2";
1880 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1881 "%s interchanged with %s");
1882 ccm_attrs[vindex].fmt = CCMFMT_L1L2;
1883
1884 vindex = ccm_vis_index (CCM_LINTRCHNG_ORDER);
1885 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1886 ccm_attrs[vindex].name = "CCM_LINTRCHNG_ORDER";
1887 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1888 "For loop nest below, the final order of loops"
1889 " after interchanging and subsequent"
1890 " transformations is: %s");
1891 ccm_attrs[vindex].fmt = CCMFMT_LL1;
1892
1893 vindex = ccm_vis_index (CCM_FUSED_2);
1894 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1895 ccm_attrs[vindex].name = "CCM_FUSED_2";
1896 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1897 "%s fused with %s, new loop %s");
1898 ccm_attrs[vindex].fmt = CCMFMT_L1L2L3;
1899
1900 vindex = ccm_vis_index (CCM_VECINTRNSC_2);
1901 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1902 ccm_attrs[vindex].name = "CCM_VECINTRNSC_2";
1903 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1904 "%s transformed to use calls to vector"
1905 " intrinsics: %s");
1906 ccm_attrs[vindex].fmt = CCMFMT_L1PP2;
1907
1908 vindex = ccm_vis_index (CCM_LSTRIPMINE_2);
1909 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1910 ccm_attrs[vindex].name = "CCM_LSTRIPMINE_2";
1911 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1912 "%s strip-mined by %d, new inner loop %s");
1913 ccm_attrs[vindex].fmt = CCMFMT_L1I2L3;
1914
1915 vindex = ccm_vis_index (CCM_LNEST2LOOPS_2);
1916 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1917 ccm_attrs[vindex].name = "CCM_LNEST2LOOPS_2";
1918 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1919 "%s collapsed with %s, new loop %s");
1920 ccm_attrs[vindex].fmt = CCMFMT_L1L2L3;
1921
1922 vindex = ccm_vis_index (CCM_LREVERSE_2);
1923 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1924 ccm_attrs[vindex].name = "CCM_LREVERSE_2";
1925 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1926 "%s has had its iteration direction reversed");
1927 ccm_attrs[vindex].fmt = CCMFMT_L1;
1928
1929 vindex = ccm_vis_index (CCM_IMIX2_B);
1930 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
1931 ccm_attrs[vindex].name = "CCM_IMIX2_B";
1932 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1933 "%s has %d loads, %d stores,"
1934 " %d prefetches, %d FPadds, %d FPmuls,"
1935 " %d FPdivs, %d FPsubs, and %d FPsqrts per"
1936 " iteration");
1937 ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7I8I9;
1938
1939 vindex = ccm_vis_index (CCM_LUNRFULL_2);
1940 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1941 ccm_attrs[vindex].name = "CCM_LUNRFULL_2";
1942 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1943 "%s fully unrolled");
1944 ccm_attrs[vindex].fmt = CCMFMT_L1;
1945
1946 vindex = ccm_vis_index (CCM_ELIM_NOAMORTINST_2);
1947 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1948 ccm_attrs[vindex].name = "CCM_ELIM_NOAMORTINST_2";
1949 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1950 "%s was eliminated as it contains no"
1951 " non-amortizable instructions");
1952 ccm_attrs[vindex].fmt = CCMFMT_L1;
1953
1954 vindex = ccm_vis_index (CCM_COMP_DALIGN_2);
1955 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1956 ccm_attrs[vindex].name = "CCM_COMP_DALIGN_2";
1957 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1958 "Performance of %s could be improved by"
1959 " compiling with -dalign");
1960 ccm_attrs[vindex].fmt = CCMFMT_L1;
1961
1962 vindex = ccm_vis_index (CCM_INTIMIX_2);
1963 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1964 ccm_attrs[vindex].name = "CCM_INTIMIX_2";
1965 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1966 "%s has %d int-loads, %d int-stores,"
1967 " %d alu-ops, %d muls, %d int-divs and"
1968 " %d shifts per iteration");
1969 ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7;
1970
1971 vindex = ccm_vis_index (CCM_OMP_REGION);
1972 ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC;
1973 ccm_attrs[vindex].name = "CCM_OMP_REGION";
1974 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1975 "Source OpenMP region below has tag %s");
1976 ccm_attrs[vindex].fmt = CCMFMT_R1;
1977
1978 vindex = ccm_vis_index (CCM_LMICROVECTORIZE);
1979 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1980 ccm_attrs[vindex].name = "CCM_LMICROVECTORIZE";
1981 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1982 "%s is micro-vectorized");
1983 ccm_attrs[vindex].fmt = CCMFMT_L1;
1984
1985 vindex = ccm_vis_index (CCM_LMULTI_VERSION_2);
1986 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1987 ccm_attrs[vindex].name = "CCM_LMULTI_VERSION_2";
1988 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1989 "%s multi-versioned for %s."
1990 " Specialized version is %s");
1991 ccm_attrs[vindex].fmt = CCMFMT_L1S2L3;
1992
1993 vindex = ccm_vis_index (CCM_LCLONED);
1994 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
1995 ccm_attrs[vindex].name = "CCM_LCLONED";
1996 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
1997 "%s cloned for %s. Clone is %s");
1998 ccm_attrs[vindex].fmt = CCMFMT_L1S2L3;
1999
2000 vindex = ccm_vis_index (CCM_LUNSWITCHED);
2001 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
2002 ccm_attrs[vindex].name = "CCM_LUNSWITCHED";
2003 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2004 "%s is unswitched. New loops"
2005 " are %s and %s");
2006 ccm_attrs[vindex].fmt = CCMFMT_L1L2L3;
2007
2008 vindex = ccm_vis_index (CCM_LRESWITCHED);
2009 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
2010 ccm_attrs[vindex].name = "CCM_LRESWITCHED";
2011 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2012 "Loops %s and %s and their surrounding"
2013 " conditional code have been merged to"
2014 " form loop %s");
2015 ccm_attrs[vindex].fmt = CCMFMT_L1L2L3;
2016
2017 vindex = ccm_vis_index (CCM_LSKEWBLOCKED);
2018 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
2019 ccm_attrs[vindex].name = "CCM_LSKEWBLOCKED";
2020 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2021 "%s skew-blocked by %d with slope"
2022 " %d for improved memory hierarchy"
2023 " performance, new inner loop %s");
2024 ccm_attrs[vindex].fmt = CCMFMT_L1I2I3L4;
2025
2026 vindex = ccm_vis_index (CCM_IVSUB);
2027 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
2028 ccm_attrs[vindex].name = "CCM_IVSUB";
2029 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2030 "Induction variable substitution performed on %s");
2031 ccm_attrs[vindex].fmt = CCMFMT_L1;
2032
2033 vindex = ccm_vis_index (CCM_ONEITER_REPLACED);
2034 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
2035 ccm_attrs[vindex].name = "CCM_ONEITER_REPLACED";
2036 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2037 "%s determined to have a trip count of 1;"
2038 " converted to straight-line code");
2039 ccm_attrs[vindex].fmt = CCMFMT_L1;
2040
2041 vindex = ccm_vis_index (CCM_IMIX3_B);
2042 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC;
2043 ccm_attrs[vindex].name = "CCM_IMIX3_B";
2044 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2045 "%s has %d loads, %d stores,"
2046 " %d prefetches, %d FPadds, %d FPmuls,"
2047 " %d FPmuladds, %d FPdivs, and %d FPsqrts per"
2048 " iteration");
2049 ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7I8I9;
2050
2051 vindex = ccm_vis_index (CCM_PIPELINE);
2052 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2053 ccm_attrs[vindex].name = "CCM_PIPELINE";
2054 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2055 "Loop below pipelined");
2056 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2057
2058 vindex = ccm_vis_index (CCM_PIPESTATS);
2059 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2060 ccm_attrs[vindex].name = "CCM_PIPESTATS";
2061 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2062 "Loop below scheduled with steady-state cycle"
2063 " count = %d");
2064 ccm_attrs[vindex].fmt = CCMFMT_I1;
2065
2066 vindex = ccm_vis_index (CCM_NOPIPE_CALL);
2067 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2068 ccm_attrs[vindex].name = "CCM_NOPIPE_CALL";
2069 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2070 "Loop could not be pipelined because it contains"
2071 " calls");
2072 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2073
2074 vindex = ccm_vis_index (CCM_NOPIPE_INTCC);
2075 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2076 ccm_attrs[vindex].name = "CCM_NOPIPE_INTCC";
2077 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2078 "Loop could not be pipelined because it sets"
2079 " multiple integer condition codes.");
2080 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2081
2082 vindex = ccm_vis_index (CCM_NOPIPE_MBAR);
2083 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2084 ccm_attrs[vindex].name = "CCM_NOPIPE_MBAR";
2085 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2086 "Loop could not be pipelined because it contains a"
2087 " memory barrier instruction");
2088 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2089
2090 vindex = ccm_vis_index (CCM_NOPIPE_MNMX);
2091 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2092 ccm_attrs[vindex].name = "CCM_NOPIPE_MNMX";
2093 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2094 "Loop could not be pipelined because it contains"
2095 " a minimum or a maximum operation");
2096 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2097
2098 vindex = ccm_vis_index (CCM_NOPIPE_U2FLT);
2099 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2100 ccm_attrs[vindex].name = "CCM_NOPIPE_U2FLT";
2101 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2102 "Loop could not be pipelined because it contains"
2103 " an unsigned to float conversion");
2104 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2105
2106 vindex = ccm_vis_index (CCM_NOPIPE_GOT);
2107 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_OBS;
2108 ccm_attrs[vindex].name = "CCM_NOPIPE_GOT";
2109 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2110 "Loop could not be pipelined because it sets the"
2111 " Global Offset Table pointer");
2112 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2113
2114 vindex = ccm_vis_index (CCM_NOPIPE_IDIV);
2115 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2116 ccm_attrs[vindex].name = "CCM_NOPIPE_IDIV";
2117 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2118 "Loop could not be pipelined because it contains"
2119 " an integer divide");
2120 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2121
2122 vindex = ccm_vis_index (CCM_NOPIPE_PRFTCH);
2123 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2124 ccm_attrs[vindex].name = "CCM_NOPIPE_PRFTCH";
2125 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2126 "Loop could not be pipelined because it contains"
2127 " a prefetch operation");
2128 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2129
2130 vindex = ccm_vis_index (CCM_NOPIPE_EXIT);
2131 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2132 ccm_attrs[vindex].name = "CCM_NOPIPE_EXIT";
2133 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2134 "Loop could not be pipelined because it contains"
2135 " an exit operation");
2136 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2137
2138 vindex = ccm_vis_index (CCM_NOPIPE_REG);
2139 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_OBS;
2140 ccm_attrs[vindex].name = "CCM_NOPIPE_REG";
2141 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2142 "Loop could not be pipelined because it contains"
2143 " instructions that set the %%gsr or %%fsr register");
2144 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2145
2146 vindex = ccm_vis_index (CCM_NOPIPE_UNS);
2147 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2148 ccm_attrs[vindex].name = "CCM_NOPIPE_UNS";
2149 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2150 "Loop could not be pipelined because it has an"
2151 " unsigned loop counter");
2152 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2153
2154 vindex = ccm_vis_index (CCM_NOPIPE_UNSUIT);
2155 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2156 ccm_attrs[vindex].name = "CCM_NOPIPE_UNSUIT";
2157 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2158 "Loop was unsuitable for pipelining");
2159 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2160
2161 vindex = ccm_vis_index (CCM_NOPIPE_INTRINSIC);
2162 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2163 ccm_attrs[vindex].name = "CCM_NOPIPE_INTRINSIC";
2164 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2165 "Loop could not be pipelined because it has an"
2166 " intrinsic call to %s");
2167 ccm_attrs[vindex].fmt = CCMFMT_P1;
2168
2169 vindex = ccm_vis_index (CCM_NOPIPE_BIG);
2170 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2171 ccm_attrs[vindex].name = "CCM_NOPIPE_BIG";
2172 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2173 "Loop could not be pipelined as it is too big");
2174 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2175
2176 vindex = ccm_vis_index (CCM_NOPIPE_INVINTPR);
2177 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2178 ccm_attrs[vindex].name = "CCM_NOPIPE_INVINTPR";
2179 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2180 "Loop could not be pipelined as it contains too"
2181 " many loop invariant integers = %d");
2182 ccm_attrs[vindex].fmt = CCMFMT_I1;
2183
2184 vindex = ccm_vis_index (CCM_NOPIPE_INVFLTPR);
2185 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2186 ccm_attrs[vindex].name = "CCM_NOPIPE_INVFLTPR";
2187 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2188 "Loop could not be pipelined as it contains too"
2189 " many loop invariant floats = %d");
2190 ccm_attrs[vindex].fmt = CCMFMT_I1;
2191
2192 vindex = ccm_vis_index (CCM_NOPIPE_INVDBLPR);
2193 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2194 ccm_attrs[vindex].name = "CCM_NOPIPE_INVDBLPR";
2195 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2196 "Loop could not be pipelined as it contains too"
2197 " many loop invariant doubles = %d");
2198 ccm_attrs[vindex].fmt = CCMFMT_I1;
2199
2200 vindex = ccm_vis_index (CCM_PIPE_SCHEDAFIPR);
2201 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2202 ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFIPR";
2203 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2204 "Loop below was adversely affected by high"
2205 " integer register pressure = %d");
2206 ccm_attrs[vindex].fmt = CCMFMT_I1;
2207
2208 vindex = ccm_vis_index (CCM_PIPE_SCHEDAFDPR);
2209 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2210 ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFDPR";
2211 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2212 "Loop below was adversely affected by high"
2213 " double register pressure = %d");
2214 ccm_attrs[vindex].fmt = CCMFMT_I1;
2215
2216 vindex = ccm_vis_index (CCM_PIPE_SCHEDAFFPR);
2217 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2218 ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFFPR";
2219 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2220 "Loop below was adversely affected by high"
2221 " float register pressure = %d");
2222 ccm_attrs[vindex].fmt = CCMFMT_I1;
2223
2224 vindex = ccm_vis_index (CCM_NOPIPE_INTPR);
2225 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2226 ccm_attrs[vindex].name = "CCM_NOPIPE_INTPR";
2227 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2228 "Loop could not be pipelined due to high"
2229 " integer register pressure = %d");
2230 ccm_attrs[vindex].fmt = CCMFMT_I1;
2231
2232 vindex = ccm_vis_index (CCM_NOPIPE_DBLPR);
2233 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2234 ccm_attrs[vindex].name = "CCM_NOPIPE_DBLPR";
2235 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2236 "Loop could not be pipelined due to high"
2237 " double register pressure = %d");
2238 ccm_attrs[vindex].fmt = CCMFMT_I1;
2239
2240 vindex = ccm_vis_index (CCM_NOPIPE_FLTPR);
2241 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
2242 ccm_attrs[vindex].name = "CCM_NOPIPE_FLTPR";
2243 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2244 "Loop could not be pipelined due to high"
2245 " float register pressure = %d");
2246 ccm_attrs[vindex].fmt = CCMFMT_I1;
2247
2248 vindex = ccm_vis_index (CCM_PIPELINE_2);
2249 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2250 ccm_attrs[vindex].name = "CCM_PIPELINE_2";
2251 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2252 "%s pipelined");
2253 ccm_attrs[vindex].fmt = CCMFMT_L1;
2254
2255 vindex = ccm_vis_index (CCM_PIPESTATS_2);
2256 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2257 ccm_attrs[vindex].name = "CCM_PIPESTATS_2";
2258 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2259 "%s scheduled with steady-state cycle"
2260 " count = %d");
2261 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2262
2263 vindex = ccm_vis_index (CCM_NOPIPE_CALL_2);
2264 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2265 ccm_attrs[vindex].name = "CCM_NOPIPE_CALL_2";
2266 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2267 "%s could not be pipelined because it contains"
2268 " calls");
2269 ccm_attrs[vindex].fmt = CCMFMT_L1;
2270
2271 vindex = ccm_vis_index (CCM_NOPIPE_INTCC_2);
2272 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2273 ccm_attrs[vindex].name = "CCM_NOPIPE_INTCC_2";
2274 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2275 "%s could not be pipelined because it sets"
2276 " multiple integer condition codes.");
2277 ccm_attrs[vindex].fmt = CCMFMT_L1;
2278
2279 vindex = ccm_vis_index (CCM_NOPIPE_MBAR_2);
2280 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2281 ccm_attrs[vindex].name = "CCM_NOPIPE_MBAR_2";
2282 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2283 "%s could not be pipelined because it contains"
2284 " a memory barrier instruction");
2285 ccm_attrs[vindex].fmt = CCMFMT_L1;
2286
2287 vindex = ccm_vis_index (CCM_NOPIPE_MNMX_2);
2288 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2289 ccm_attrs[vindex].name = "CCM_NOPIPE_MNMX_2";
2290 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2291 "%s could not be pipelined because it contains"
2292 " a minimum or a maximum operation");
2293 ccm_attrs[vindex].fmt = CCMFMT_L1;
2294
2295 vindex = ccm_vis_index (CCM_NOPIPE_U2FLT_2);
2296 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2297 ccm_attrs[vindex].name = "CCM_NOPIPE_U2FLT_2";
2298 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2299 "%s could not be pipelined because it contains"
2300 " an unsigned to float conversion");
2301 ccm_attrs[vindex].fmt = CCMFMT_L1;
2302
2303 vindex = ccm_vis_index (CCM_NOPIPE_GOT_2);
2304 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP;
2305 ccm_attrs[vindex].name = "CCM_NOPIPE_GOT_2";
2306 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2307 "%s could not be pipelined because it sets the"
2308 " Global Offset Table pointer");
2309 ccm_attrs[vindex].fmt = CCMFMT_L1;
2310
2311 vindex = ccm_vis_index (CCM_NOPIPE_IDIV_2);
2312 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2313 ccm_attrs[vindex].name = "CCM_NOPIPE_IDIV_2";
2314 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2315 "%s could not be pipelined because it contains"
2316 " an integer divide");
2317 ccm_attrs[vindex].fmt = CCMFMT_L1;
2318
2319 vindex = ccm_vis_index (CCM_NOPIPE_PRFTCH_2);
2320 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2321 ccm_attrs[vindex].name = "CCM_NOPIPE_PRFTCH_2";
2322 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2323 "%s could not be pipelined because it contains"
2324 " a prefetch operation");
2325 ccm_attrs[vindex].fmt = CCMFMT_L1;
2326
2327 vindex = ccm_vis_index (CCM_NOPIPE_EXIT_2);
2328 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2329 ccm_attrs[vindex].name = "CCM_NOPIPE_EXIT_2";
2330 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2331 "%s could not be pipelined because it contains"
2332 " an exit operation");
2333 ccm_attrs[vindex].fmt = CCMFMT_L1;
2334
2335 vindex = ccm_vis_index (CCM_NOPIPE_REG_2);
2336 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP;
2337 ccm_attrs[vindex].name = "CCM_NOPIPE_REG_2";
2338 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2339 "%s could not be pipelined because it contains"
2340 " instructions that set the %%gsr or %%fsr register");
2341 ccm_attrs[vindex].fmt = CCMFMT_L1;
2342
2343 vindex = ccm_vis_index (CCM_NOPIPE_UNS_2);
2344 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2345 ccm_attrs[vindex].name = "CCM_NOPIPE_UNS_2";
2346 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2347 "%s could not be pipelined because it has an"
2348 " unsigned loop counter");
2349 ccm_attrs[vindex].fmt = CCMFMT_L1;
2350
2351 vindex = ccm_vis_index (CCM_NOPIPE_UNSUIT_2);
2352 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2353 ccm_attrs[vindex].name = "CCM_NOPIPE_UNSUIT_2";
2354 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2355 "%s is unsuitable for pipelining");
2356 ccm_attrs[vindex].fmt = CCMFMT_L1;
2357
2358 vindex = ccm_vis_index (CCM_NOPIPE_INTRINSIC_2);
2359 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2360 ccm_attrs[vindex].name = "CCM_NOPIPE_INTRINSIC_2";
2361 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2362 "%s could not be pipelined because it contains"
2363 " a call to intrinsic %s");
2364 ccm_attrs[vindex].fmt = CCMFMT_L1P2;
2365
2366 vindex = ccm_vis_index (CCM_NOPIPE_BIG_2);
2367 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2368 ccm_attrs[vindex].name = "CCM_NOPIPE_BIG_2";
2369 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2370 "%s could not be pipelined as it is too big");
2371 ccm_attrs[vindex].fmt = CCMFMT_L1;
2372
2373 vindex = ccm_vis_index (CCM_NOPIPE_INVINTPR_2);
2374 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2375 ccm_attrs[vindex].name = "CCM_NOPIPE_INVINTPR_2";
2376 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2377 "%s could not be pipelined as it contains too"
2378 " many loop invariant integers = %d");
2379 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2380
2381 vindex = ccm_vis_index (CCM_NOPIPE_INVFLTPR_2);
2382 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2383 ccm_attrs[vindex].name = "CCM_NOPIPE_INVFLTPR_2";
2384 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2385 "%s could not be pipelined as it contains too"
2386 " many loop invariant floats = %d");
2387 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2388
2389 vindex = ccm_vis_index (CCM_NOPIPE_INVDBLPR_2);
2390 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2391 ccm_attrs[vindex].name = "CCM_NOPIPE_INVDBLPR_2";
2392 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2393 "%s could not be pipelined as it contains too"
2394 " many loop invariant doubles = %d");
2395 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2396
2397 vindex = ccm_vis_index (CCM_PIPE_SCHEDAFIPR_2);
2398 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2399 ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFIPR_2";
2400 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2401 "%s was adversely affected by high"
2402 " integer register pressure = %d");
2403 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2404
2405 vindex = ccm_vis_index (CCM_PIPE_SCHEDAFDPR_2);
2406 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2407 ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFDPR_2";
2408 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2409 "%s was adversely affected by high"
2410 " double register pressure = %d");
2411 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2412
2413 vindex = ccm_vis_index (CCM_PIPE_SCHEDAFFPR_2);
2414 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2415 ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFFPR_2";
2416 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2417 "%s was adversely affected by high"
2418 " float register pressure = %d");
2419 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2420
2421 vindex = ccm_vis_index (CCM_NOPIPE_INTPR_2);
2422 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2423 ccm_attrs[vindex].name = "CCM_NOPIPE_INTPR_2";
2424 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2425 "%s could not be pipelined due to high"
2426 " integer register pressure = %d");
2427 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2428
2429 vindex = ccm_vis_index (CCM_NOPIPE_DBLPR_2);
2430 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2431 ccm_attrs[vindex].name = "CCM_NOPIPE_DBLPR_2";
2432 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2433 "%s could not be pipelined due to high"
2434 " double register pressure = %d");
2435 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2436
2437 vindex = ccm_vis_index (CCM_NOPIPE_FLTPR_2);
2438 ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC;
2439 ccm_attrs[vindex].name = "CCM_NOPIPE_FLTPR_2";
2440 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2441 "%s could not be pipelined due to high"
2442 " float register pressure = %d");
2443 ccm_attrs[vindex].fmt = CCMFMT_L1I2;
2444
2445 vindex = ccm_vis_index (CCM_INLINE);
2446 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC | CCMV_OBS;
2447 ccm_attrs[vindex].name = "CCM_INLINE";
2448 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2449 "Function %s inlined from source file %s into"
2450 " the code for the following line");
2451 ccm_attrs[vindex].fmt = CCMFMT_P1S2;
2452
2453 vindex = ccm_vis_index (CCM_INLINE2);
2454 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC | CCMV_OBS;
2455 ccm_attrs[vindex].name = "CCM_INLINE2";
2456 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2457 "Function %s inlined from source file %s into"
2458 " inline copy of function %s");
2459 ccm_attrs[vindex].fmt = CCMFMT_P1S2P3;
2460
2461 vindex = ccm_vis_index (CCM_INLINE_TMPLT);
2462 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2463 ccm_attrs[vindex].name = "CCM_INLINE_TMPLT";
2464 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2465 "Function %s inlined from template file %s"
2466 " into the code for the following line");
2467 ccm_attrs[vindex].fmt = CCMFMT_P1S2;
2468
2469 vindex = ccm_vis_index (CCM_INLINE_TMPLT2);
2470 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2471 ccm_attrs[vindex].name = "CCM_INLINE_TMPLT2";
2472 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2473 "Function %s inlined from template file %s"
2474 " into inline copy of function %s");
2475 ccm_attrs[vindex].fmt = CCMFMT_P1S2P3;
2476
2477 vindex = ccm_vis_index (CCM_INLINE_OUT_COPY);
2478 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2479 ccm_attrs[vindex].name = "CCM_INLINE_OUT_COPY";
2480 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2481 "Out-of-line copy of inlined function %s from"
2482 " source file %s generated");
2483 ccm_attrs[vindex].fmt = CCMFMT_P1S2;
2484
2485 vindex = ccm_vis_index (CCM_NINLINE_REC);
2486 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2487 ccm_attrs[vindex].name = "CCM_NINLINE_REC";
2488 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2489 "Recursive function %s inlined only up to"
2490 " depth %d");
2491 ccm_attrs[vindex].fmt = CCMFMT_P1I2;
2492
2493 vindex = ccm_vis_index (CCM_NINLINE_NEST);
2494 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2495 ccm_attrs[vindex].name = "CCM_NINLINE_NEST";
2496 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2497 "Function %s not inlined because inlining is"
2498 " already nested too deeply");
2499 ccm_attrs[vindex].fmt = CCMFMT_P1;
2500
2501 vindex = ccm_vis_index (CCM_NINLINE_CMPLX);
2502 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2503 ccm_attrs[vindex].name = "CCM_NINLINE_CMPLX";
2504 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2505 "Function %s not inlined because it contains"
2506 " too many operations");
2507 ccm_attrs[vindex].fmt = CCMFMT_P1;
2508
2509 vindex = ccm_vis_index (CCM_NINLINE_FB);
2510 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2511 ccm_attrs[vindex].name = "CCM_NINLINE_FB";
2512 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2513 "Function %s not inlined because the"
2514 " profile-feedback execution count is too low");
2515 ccm_attrs[vindex].fmt = CCMFMT_P1;
2516
2517 vindex = ccm_vis_index (CCM_NINLINE_PAR);
2518 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2519 ccm_attrs[vindex].name = "CCM_NINLINE_PAR";
2520 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2521 "Function %s not inlined because it contains"
2522 " explicit parallel pragmas");
2523 ccm_attrs[vindex].fmt = CCMFMT_P1;
2524
2525 vindex = ccm_vis_index (CCM_NINLINE_OPT);
2526 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2527 ccm_attrs[vindex].name = "CCM_NINLINE_OPT";
2528 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2529 "Function %s not inlined because it is"
2530 " compiled with optimization level <= 2");
2531 ccm_attrs[vindex].fmt = CCMFMT_P1;
2532
2533 vindex = ccm_vis_index (CCM_NINLINE_USR);
2534 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2535 ccm_attrs[vindex].name = "CCM_NINLINE_USR";
2536 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2537 "Function %s not inlined because either command"
2538 " line option or source code pragma prohibited it,"
2539 " or it's not safe to inline it");
2540 ccm_attrs[vindex].fmt = CCMFMT_P1;
2541
2542 vindex = ccm_vis_index (CCM_NINLINE_AUTO);
2543 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2544 ccm_attrs[vindex].name = "CCM_NINLINE_AUTO";
2545 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2546 "Function %s not inlined because doing so"
2547 " would make automatic storage for %s too large");
2548 ccm_attrs[vindex].fmt = CCMFMT_P1P2;
2549
2550 vindex = ccm_vis_index (CCM_NINLINE_CALLS);
2551 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2552 ccm_attrs[vindex].name = "CCM_NINLINE_CALLS";
2553 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2554 "Function %s not inlined because it contains"
2555 " too many calls");
2556 ccm_attrs[vindex].fmt = CCMFMT_P1;
2557
2558 vindex = ccm_vis_index (CCM_NINLINE_ACTUAL);
2559 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2560 ccm_attrs[vindex].name = "CCM_NINLINE_ACTUAL";
2561 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2562 "Function %s not inlined because it has more"
2563 " actual parameters than formal parameters");
2564 ccm_attrs[vindex].fmt = CCMFMT_P1;
2565
2566 vindex = ccm_vis_index (CCM_NINLINE_FORMAL);
2567 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2568 ccm_attrs[vindex].name = "CCM_NINLINE_FORMAL";
2569 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2570 "Function %s not inlined because it has more"
2571 " formal parameters than actual parameters");
2572 ccm_attrs[vindex].fmt = CCMFMT_P1;
2573
2574 vindex = ccm_vis_index (CCM_NINLINE_TYPE);
2575 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2576 ccm_attrs[vindex].name = "CCM_NINLINE_TYPE";
2577 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2578 "Function %s not inlined because formal"
2579 " argument type does not match actual type");
2580 ccm_attrs[vindex].fmt = CCMFMT_P1;
2581
2582 vindex = ccm_vis_index (CCM_NINLINE_ATYPE);
2583 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2584 ccm_attrs[vindex].name = "CCM_NINLINE_ATYPE";
2585 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2586 "Function %s not inlined because array formal"
2587 " argument does not match reshaped array actual"
2588 " argument type");
2589 ccm_attrs[vindex].fmt = CCMFMT_P1;
2590
2591 vindex = ccm_vis_index (CCM_NINLINE_RETTYPE);
2592 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2593 ccm_attrs[vindex].name = "CCM_NINLINE_RETTYPE";
2594 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2595 "Function %s not inlined because return type"
2596 " does not match");
2597 ccm_attrs[vindex].fmt = CCMFMT_P1;
2598
2599 vindex = ccm_vis_index (CCM_NINLINE_EXCPT);
2600 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2601 ccm_attrs[vindex].name = "CCM_NINLINE_EXCPT";
2602 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2603 "Function %s not inlined because it"
2604 " guarded by an exception handler");
2605 ccm_attrs[vindex].fmt = CCMFMT_P1;
2606
2607 vindex = ccm_vis_index (CCM_NINLINE_UNSAFE);
2608 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2609 ccm_attrs[vindex].name = "CCM_NINLINE_UNSAFE";
2610 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2611 "Function %s not inlined because it might be"
2612 " unsafe (call alloca(), etc)");
2613 ccm_attrs[vindex].fmt = CCMFMT_P1;
2614
2615 vindex = ccm_vis_index (CCM_NINLINE_ALIAS);
2616 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2617 ccm_attrs[vindex].name = "CCM_NINLINE_ALIAS";
2618 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2619 "Function %s not inlined because inlining it"
2620 " will make the alias analysis in the calling"
2621 " function more conservative");
2622 ccm_attrs[vindex].fmt = CCMFMT_P1;
2623
2624 vindex = ccm_vis_index (CCM_NINLINE_FEMARK);
2625 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2626 ccm_attrs[vindex].name = "CCM_NINLINE_FEMARK";
2627 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2628 "Function %s not inlined because it contains"
2629 " setjmp/longjmp, or indirect goto, etc");
2630 ccm_attrs[vindex].fmt = CCMFMT_P1;
2631
2632 vindex = ccm_vis_index (CCM_NINLINE_RAREX);
2633 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2634 ccm_attrs[vindex].name = "CCM_NINLINE_RAREX";
2635 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2636 "Function %s not inlined because it is known"
2637 " to be rarely executed");
2638 ccm_attrs[vindex].fmt = CCMFMT_P1;
2639
2640 vindex = ccm_vis_index (CCM_CLONING);
2641 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2642 ccm_attrs[vindex].name = "CCM_CLONING";
2643 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2644 "Function %s from source file %s cloned,"
2645 " creating cloned function %s; constant"
2646 " parameters propagated to clone");
2647 ccm_attrs[vindex].fmt = CCMFMT_P1S2P3;
2648
2649 vindex = ccm_vis_index (CCM_INLINE_B);
2650 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2651 ccm_attrs[vindex].name = "CCM_INLINE_B";
2652 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2653 "Function %s inlined from source file %s into"
2654 " the code for the following line. %d loops"
2655 " inlined");
2656 ccm_attrs[vindex].fmt = CCMFMT_P1S2I3;
2657
2658 vindex = ccm_vis_index (CCM_INLINE2_B);
2659 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2660 ccm_attrs[vindex].name = "CCM_INLINE2_B";
2661 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2662 "Function %s inlined from source file %s into"
2663 " inline copy of function %s. %d loops inlined");
2664 ccm_attrs[vindex].fmt = CCMFMT_P1S2P3I4;
2665
2666 vindex = ccm_vis_index (CCM_INLINE_LOOP);
2667 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_LOOP | CCMV_BASIC;
2668 ccm_attrs[vindex].name = "CCM_INLINE_LOOP";
2669 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2670 "Loop in function %s, line %d has"
2671 " tag %s");
2672 ccm_attrs[vindex].fmt = CCMFMT_P1I2L3;
2673
2674 vindex = ccm_vis_index (CCM_NINLINE_MULTIENTRY);
2675 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2676 ccm_attrs[vindex].name = "CCM_NINLINE_MULTIENTRY";
2677 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2678 "Function %s not inlined because it"
2679 " contains an ENTRY statement");
2680 ccm_attrs[vindex].fmt = CCMFMT_P1;
2681
2682 vindex = ccm_vis_index (CCM_NINLINE_VARARGS);
2683 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2684 ccm_attrs[vindex].name = "CCM_NINLINE_VARARGS";
2685 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2686 "Function %s not inlined because variable"
2687 " argument routines cannot be inlined");
2688 ccm_attrs[vindex].fmt = CCMFMT_P1;
2689
2690 vindex = ccm_vis_index (CCM_NINLINE_UNSEEN_BODY);
2691 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2692 ccm_attrs[vindex].name = "CCM_NINLINE_UNSEEN_BODY";
2693 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2694 "Function %s not inlined because the compiler"
2695 " has not seen the body of the function. Use"
2696 " -xcrossfile or -xipo in order to inline it");
2697 ccm_attrs[vindex].fmt = CCMFMT_P1;
2698
2699 vindex = ccm_vis_index (CCM_NINLINE_UPLEVEL);
2700 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2701 ccm_attrs[vindex].name = "CCM_NINLINE_UPLEVEL";
2702 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2703 "Function %s not inlined because it is a"
2704 " nested routine containing references to"
2705 " variables defined in an outer function");
2706 ccm_attrs[vindex].fmt = CCMFMT_P1;
2707
2708 vindex = ccm_vis_index (CCM_NINLINE_CMDLINE);
2709 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2710 ccm_attrs[vindex].name = "CCM_NINLINE_CMDLINE";
2711 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2712 "Function %s not inlined because either"
2713 " -xinline or source code pragma prohibited it");
2714 ccm_attrs[vindex].fmt = CCMFMT_P1;
2715
2716 vindex = ccm_vis_index (CCM_NINLINE_CALL_CMPLX);
2717 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2718 ccm_attrs[vindex].name = "CCM_NINLINE_CALL_CMPLX";
2719 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2720 "Call to %s not inlined because of the"
2721 " complexity of the calling routine");
2722 ccm_attrs[vindex].fmt = CCMFMT_P1;
2723
2724 vindex = ccm_vis_index (CCM_NINLINE_LANG_MISMATCH);
2725 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2726 ccm_attrs[vindex].name = "CCM_NINLINE_LANG_MISMATCH";
2727 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2728 "Call to %s not inlined because it is in"
2729 " a different language");
2730 ccm_attrs[vindex].fmt = CCMFMT_P1;
2731
2732 vindex = ccm_vis_index (CCM_NINLINE_RTN_WEAK);
2733 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2734 ccm_attrs[vindex].name = "CCM_NINLINE_RTN_WEAK";
2735 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2736 "Function %s not inlined because it"
2737 " is marked weak");
2738 ccm_attrs[vindex].fmt = CCMFMT_P1;
2739
2740 vindex = ccm_vis_index (CCM_NINLINE_CALL_WEAKFILE);
2741 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2742 ccm_attrs[vindex].name = "CCM_NINLINE_CALL_WEAKFILE";
2743 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2744 "Call to %s not inlined because it is"
2745 " in a different file and it contains a"
2746 " call to a weak routine");
2747 ccm_attrs[vindex].fmt = CCMFMT_P1;
2748
2749 vindex = ccm_vis_index (CCM_NINLINE_CALL_TRYCATCH);
2750 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2751 ccm_attrs[vindex].name = "CCM_NINLINE_CALL_TRYCATCH";
2752 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2753 "Call to %s not inlined because it is"
2754 " in a different file and contains an"
2755 " explicit try/catch");
2756 ccm_attrs[vindex].fmt = CCMFMT_P1;
2757
2758 vindex = ccm_vis_index (CCM_NINLINE_CALL_REGP);
2759 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2760 ccm_attrs[vindex].name = "CCM_NINLINE_CALL_REGP";
2761 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2762 "Call to %s not inlined because it would"
2763 " cause excessive register pressure");
2764 ccm_attrs[vindex].fmt = CCMFMT_P1;
2765
2766 vindex = ccm_vis_index (CCM_NINLINE_RTN_REGP);
2767 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2768 ccm_attrs[vindex].name = "CCM_NINLINE_RTN_REGP";
2769 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2770 "Function %s not inlined because it would"
2771 " cause excessive register pressure");
2772 ccm_attrs[vindex].fmt = CCMFMT_P1;
2773
2774 vindex = ccm_vis_index (CCM_NINLINE_CALL_XPENSV);
2775 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2776 ccm_attrs[vindex].name = "CCM_NINLINE_CALL_XPENSV";
2777 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2778 "Call to %s not inlined because analysis"
2779 " exceeds the compilation time limit");
2780 ccm_attrs[vindex].fmt = CCMFMT_P1;
2781
2782 vindex = ccm_vis_index (CCM_NINLINE_READONLYIR);
2783 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2784 ccm_attrs[vindex].name = "CCM_NINLINE_READONLYIR";
2785 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2786 "Function %s not inlined because it is in a file"
2787 " specified as read-only by -xipo_archive=readonly"
2788 " and it contains calls to static functions");
2789 ccm_attrs[vindex].fmt = CCMFMT_P1;
2790
2791 vindex = ccm_vis_index (CCM_NINLINE_CALL_THUNK);
2792 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2793 ccm_attrs[vindex].name = "CCM_NINLINE_CALL_THUNK";
2794 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2795 "Call to %s not inlined because it is in a"
2796 " compiler-generated function that does not"
2797 " permit inlining");
2798 ccm_attrs[vindex].fmt = CCMFMT_P1;
2799
2800 vindex = ccm_vis_index (CCM_NINLINE_CALL_XTARGETS);
2801 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2802 ccm_attrs[vindex].name = "CCM_NINLINE_CALL_XTARGETS";
2803 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2804 "Indirect callsite has too many targets;"
2805 " callsite marked do not inline");
2806 ccm_attrs[vindex].fmt = CCMFMT_NONE;
2807
2808 vindex = ccm_vis_index (CCM_NINLINE_SELFTAIL_RECURSIVE);
2809 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2810 ccm_attrs[vindex].name = "CCM_NINLINE_SELFTAIL_RECURSIVE";
2811 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2812 "Function %s not inlined because"
2813 " of a recursive tail-call to itself");
2814 ccm_attrs[vindex].fmt = CCMFMT_P1;
2815
2816 vindex = ccm_vis_index (CCM_NINLINE_PRAGMA);
2817 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2818 ccm_attrs[vindex].name = "CCM_NINLINE_PRAGMA";
2819 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2820 "Function %s not inlined because it contains"
2821 " explicit parallel or alias pragmas");
2822 ccm_attrs[vindex].fmt = CCMFMT_P1;
2823
2824 vindex = ccm_vis_index (CCM_NINLINE_CMPLX2);
2825 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2826 ccm_attrs[vindex].name = "CCM_NINLINE_CMPLX2";
2827 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2828 "Function %s not inlined because it contains too"
2829 " many operations. Increase max_inst_hard in order"
2830 " to inline it: -xinline_param=max_inst_hard:n");
2831 ccm_attrs[vindex].fmt = CCMFMT_P1;
2832
2833 vindex = ccm_vis_index (CCM_NINLINE_RARE);
2834 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2835 ccm_attrs[vindex].name = "CCM_NINLINE_RARE";
2836 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2837 "Function %s not inlined because the call"
2838 " is rarely executed");
2839 ccm_attrs[vindex].fmt = CCMFMT_P1;
2840
2841 vindex = ccm_vis_index (CCM_NINLINE_PAR2);
2842 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2843 ccm_attrs[vindex].name = "CCM_NINLINE_PAR2";
2844 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2845 "Function %s not inlined because it is called"
2846 " within a region guarded by an explicit"
2847 " parallel pragmas");
2848 ccm_attrs[vindex].fmt = CCMFMT_P1;
2849
2850 vindex = ccm_vis_index (CCM_NINLINE_G_LIMIT);
2851 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2852 ccm_attrs[vindex].name = "CCM_NINLINE_G_LIMIT";
2853 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2854 "Function %s not inlined because it would exceed"
2855 " the permitted global code size growth limit. Try"
2856 " to increase max_growth in order to inline it:"
2857 " -xinline_param=max_growth:n");
2858 ccm_attrs[vindex].fmt = CCMFMT_P1;
2859
2860 vindex = ccm_vis_index (CCM_NINLINE_L_LIMIT);
2861 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2862 ccm_attrs[vindex].name = "CCM_NINLINE_L_LIMIT";
2863 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2864 "Function %s not inlined because it would exceed"
2865 " the maximum function size growth limit. Increase"
2866 " max_function_inst in order to inline it:"
2867 " -xinline_param=max_function_inst:n");
2868 ccm_attrs[vindex].fmt = CCMFMT_P1;
2869
2870 vindex = ccm_vis_index (CCM_NINLINE_REC2);
2871 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2872 ccm_attrs[vindex].name = "CCM_NINLINE_REC2";
2873 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2874 "Recursive function %s is inlined only up to"
2875 " %d levels and up to %d size. Increase"
2876 " max_recursive_deptha or max_recursive_inst in"
2877 " order to inline it:"
2878 " -xinline_param=max_recursive_depth:n,"
2879 " -xinline_param=max_recursive_inst:n");
2880 ccm_attrs[vindex].fmt = CCMFMT_P1I2I3;
2881
2882 vindex = ccm_vis_index (CCM_NINLINE_FB2);
2883 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2884 ccm_attrs[vindex].name = "CCM_NINLINE_FB2";
2885 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2886 "Function %s not inlined because the"
2887 " profile-feedback execution count is too"
2888 " low. Decrease min_counter in order to inline it:"
2889 " -xinline_param:min_counter:n");
2890 ccm_attrs[vindex].fmt = CCMFMT_P1;
2891
2892 vindex = ccm_vis_index (CCM_NINLINE_CS_CMPLX);
2893 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2894 ccm_attrs[vindex].name = "CCM_NINLINE_CS_CMPLX";
2895 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2896 "Function %s not inlined because called"
2897 " function's size is too big. Increase"
2898 " max_inst_soft in order to inline it:"
2899 " -xinline_param=max_inst_soft:n");
2900 ccm_attrs[vindex].fmt = CCMFMT_P1;
2901
2902 vindex = ccm_vis_index (CCM_NINLINE_R_EXCPT);
2903 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2904 ccm_attrs[vindex].name = "CCM_NINLINE_R_EXCPT";
2905 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2906 "Function %s not inlined because it contains"
2907 " an exception handler");
2908 ccm_attrs[vindex].fmt = CCMFMT_P1;
2909
2910 vindex = ccm_vis_index (CCM_NINLINE_ASM);
2911 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2912 ccm_attrs[vindex].name = "CCM_NINLINE_ASM";
2913 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2914 "Function %s not inlined because"
2915 " it contains asm statements");
2916 ccm_attrs[vindex].fmt = CCMFMT_P1;
2917
2918 vindex = ccm_vis_index (CCM_NINLINE_R_READONLYIR);
2919 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2920 ccm_attrs[vindex].name = "CCM_NINLINE_R_READONLYIR";
2921 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2922 "Function %s not inlined because it is in a file"
2923 " specified as read-only by -xipo_archive=readonly"
2924 " and it is a static function");
2925 ccm_attrs[vindex].fmt = CCMFMT_P1;
2926
2927 vindex = ccm_vis_index (CCM_NINLINE_C_READONLYIR);
2928 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2929 ccm_attrs[vindex].name = "CCM_NINLINE_C_READONLYIR";
2930 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2931 "Call to %s not inlined because the calling"
2932 " function is in a file specified as read-only"
2933 " by -xipo_archive=readonly");
2934 ccm_attrs[vindex].fmt = CCMFMT_P1;
2935
2936 vindex = ccm_vis_index (CCM_NINLINE_NEVERRETURN);
2937 ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC;
2938 ccm_attrs[vindex].name = "CCM_NINLINE_NEVERRETURN";
2939 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2940 "Function %s not inlined because it"
2941 " never returns");
2942 ccm_attrs[vindex].fmt = CCMFMT_P1;
2943
2944 vindex = ccm_vis_index (CCM_MPREFETCH);
2945 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
2946 ccm_attrs[vindex].name = "CCM_MPREFETCH";
2947 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2948 "Prefetch of %s inserted");
2949 ccm_attrs[vindex].fmt = CCMFMT_S1;
2950
2951 vindex = ccm_vis_index (CCM_MPREFETCH_LD);
2952 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
2953 ccm_attrs[vindex].name = "CCM_MPREFETCH_LD";
2954 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2955 "Prefetch of %s inserted for load at %s");
2956 ccm_attrs[vindex].fmt = CCMFMT_S1X2;
2957
2958 vindex = ccm_vis_index (CCM_MPREFETCH_ST);
2959 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
2960 ccm_attrs[vindex].name = "CCM_MPREFETCH_ST";
2961 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2962 "Prefetch of %s inserted for store at %s");
2963 ccm_attrs[vindex].fmt = CCMFMT_S1X2;
2964
2965 vindex = ccm_vis_index (CCM_MPREFETCH_FB);
2966 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
2967 ccm_attrs[vindex].name = "CCM_MPREFETCH_FB";
2968 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2969 "Prefetch of %s inserted based on feedback data");
2970 ccm_attrs[vindex].fmt = CCMFMT_S1;
2971
2972 vindex = ccm_vis_index (CCM_MPREFETCH_FB_LD);
2973 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
2974 ccm_attrs[vindex].name = "CCM_MPREFETCH_FB_LD";
2975 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2976 "Prefetch of %s inserted for load at %s based"
2977 " on feedback data");
2978 ccm_attrs[vindex].fmt = CCMFMT_S1X2;
2979
2980 vindex = ccm_vis_index (CCM_MPREFETCH_FB_ST);
2981 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
2982 ccm_attrs[vindex].name = "CCM_MPREFETCH_FB_ST";
2983 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2984 "Prefetch of %s inserted for store at %s based"
2985 " on feedback data");
2986 ccm_attrs[vindex].fmt = CCMFMT_S1X2;
2987
2988 vindex = ccm_vis_index (CCM_MLOAD);
2989 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL;
2990 ccm_attrs[vindex].name = "CCM_MLOAD";
2991 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2992 "Load below refers to %s");
2993 ccm_attrs[vindex].fmt = CCMFMT_S1;
2994
2995 vindex = ccm_vis_index (CCM_MSTORE);
2996 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL;
2997 ccm_attrs[vindex].name = "CCM_MSTORE";
2998 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
2999 "Store below refers to %s");
3000 ccm_attrs[vindex].fmt = CCMFMT_S1;
3001
3002 vindex = ccm_vis_index (CCM_MLOAD_P);
3003 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL;
3004 ccm_attrs[vindex].name = "CCM_MLOAD_P";
3005 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3006 "Load below refers to %s, and was prefetched"
3007 " at %s");
3008 ccm_attrs[vindex].fmt = CCMFMT_S1X2;
3009
3010 vindex = ccm_vis_index (CCM_MSTORE_P);
3011 ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL;
3012 ccm_attrs[vindex].name = "CCM_MSTORE_P";
3013 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3014 "Store below refers to %s, and was prefetched"
3015 " at %s");
3016 ccm_attrs[vindex].fmt = CCMFMT_S1X2;
3017
3018 vindex = ccm_vis_index (CCM_COPYIN);
3019 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3020 ccm_attrs[vindex].name = "CCM_COPYIN";
3021 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3022 "Parameter %d caused a copyin in the following"
3023 " call");
3024 ccm_attrs[vindex].fmt = CCMFMT_I1;
3025
3026 vindex = ccm_vis_index (CCM_COPYOUT);
3027 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3028 ccm_attrs[vindex].name = "CCM_COPYOUT";
3029 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3030 "Parameter %d caused a copyout in the following"
3031 " call");
3032 ccm_attrs[vindex].fmt = CCMFMT_I1;
3033
3034 vindex = ccm_vis_index (CCM_COPYINOUT);
3035 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3036 ccm_attrs[vindex].name = "CCM_COPYINOUT";
3037 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3038 "Parameter %d caused both a copyin and copyout"
3039 " in the following call");
3040 ccm_attrs[vindex].fmt = CCMFMT_I1;
3041
3042 vindex = ccm_vis_index (CCM_PADDING);
3043 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3044 ccm_attrs[vindex].name = "CCM_PADDING";
3045 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3046 "Padding of %d bytes inserted before"
3047 " array %s");
3048 ccm_attrs[vindex].fmt = CCMFMT_I1V2;
3049
3050 vindex = ccm_vis_index (CCM_PADCOMMON);
3051 ccm_attrs[vindex].vis = CCMV_FE | CCMV_UNIMPL;
3052 ccm_attrs[vindex].name = "CCM_PADCOMMON";
3053 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3054 "Padding of %d bytes inserted before"
3055 " array %s in common block %s");
3056 ccm_attrs[vindex].fmt = CCMFMT_I1V2V3;
3057
3058 vindex = ccm_vis_index (CCM_ALIGN_EQ);
3059 ccm_attrs[vindex].vis = CCMV_FE | CCMV_UNIMPL;
3060 ccm_attrs[vindex].name = "CCM_ALIGN_EQ";
3061 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3062 "Variable/array %s can not be double-aligned,"
3063 " because it is equivalenced");
3064 ccm_attrs[vindex].fmt = CCMFMT_V1;
3065
3066 vindex = ccm_vis_index (CCM_ALIGN_PERF);
3067 ccm_attrs[vindex].vis = CCMV_FE;
3068 ccm_attrs[vindex].name = "CCM_ALIGN_PERF";
3069 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3070 "Alignment of variables in common block may cause"
3071 " performance degradation");
3072 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3073
3074 vindex = ccm_vis_index (CCM_ALIGN_STRUCT);
3075 ccm_attrs[vindex].vis = CCMV_FE;
3076 ccm_attrs[vindex].name = "CCM_ALIGN_STRUCT";
3077 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3078 "Alignment of component %s in numeric sequence"
3079 " structure %s may cause performance degradation");
3080 ccm_attrs[vindex].fmt = CCMFMT_S1S2;
3081
3082 vindex = ccm_vis_index (CCM_TMP_COPY);
3083 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3084 ccm_attrs[vindex].name = "CCM_TMP_COPY";
3085 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3086 "Argument %s copied to a temporary");
3087 ccm_attrs[vindex].fmt = CCMFMT_V1;
3088
3089 vindex = ccm_vis_index (CCM_TMP_COPYM);
3090 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3091 ccm_attrs[vindex].name = "CCM_TMP_COPYM";
3092 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3093 "Argument %s might be copied to a temporary;"
3094 " runtime decision made");
3095 ccm_attrs[vindex].fmt = CCMFMT_V1;
3096
3097 vindex = ccm_vis_index (CCM_PROC_MISMATCH);
3098 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
3099 ccm_attrs[vindex].name = "CCM_PROC_MISMATCH";
3100 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3101 "Argument %d to subprogram %s differs from"
3102 " reference on line %d");
3103 ccm_attrs[vindex].fmt = CCMFMT_I1P2I3;
3104
3105 vindex = ccm_vis_index (CCM_PROC_MISMATCH2);
3106 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
3107 ccm_attrs[vindex].name = "CCM_PROC_MISMATCH2";
3108 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3109 "Scalar argument %d to subprogram %s is"
3110 " referred to as an array on line %d");
3111 ccm_attrs[vindex].fmt = CCMFMT_I1P2I3;
3112
3113 vindex = ccm_vis_index (CCM_PROC_MISMATCH3);
3114 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
3115 ccm_attrs[vindex].name = "CCM_PROC_MISMATCH3";
3116 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3117 "Return type/rank from subprogram %s differs"
3118 " from return on line %d");
3119 ccm_attrs[vindex].fmt = CCMFMT_P1I2;
3120
3121 vindex = ccm_vis_index (CCM_DO_EXPR);
3122 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3123 ccm_attrs[vindex].name = "CCM_DO_EXPR";
3124 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3125 "DO statement bounds lead to no executions of the"
3126 " loop");
3127 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3128
3129 vindex = ccm_vis_index (CCM_AUTO_BND);
3130 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3131 ccm_attrs[vindex].name = "CCM_AUTO_BND";
3132 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3133 "The bounds for automatic variable %s are not"
3134 " available at all entry points; zero-length"
3135 " variable might be allocated");
3136 ccm_attrs[vindex].fmt = CCMFMT_V1;
3137
3138 vindex = ccm_vis_index (CCM_LIT_PAD);
3139 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3140 ccm_attrs[vindex].name = "CCM_LIT_PAD";
3141 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3142 "The character string literal %s padded"
3143 " to the length specified for the dummy argument");
3144 ccm_attrs[vindex].fmt = CCMFMT_S1;
3145
3146 vindex = ccm_vis_index (CCM_ARRAY_LOOP);
3147 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
3148 ccm_attrs[vindex].name = "CCM_ARRAY_LOOP";
3149 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3150 "Array statement below generated a loop");
3151 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3152
3153 vindex = ccm_vis_index (CCM_ARRAY_LOOPNEST);
3154 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS;
3155 ccm_attrs[vindex].name = "CCM_ARRAY_LOOPNEST";
3156 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3157 "Array statement below generated %d nested loops");
3158 ccm_attrs[vindex].fmt = CCMFMT_I1;
3159
3160 vindex = ccm_vis_index (CCM_ALIGN_PERF2);
3161 ccm_attrs[vindex].vis = CCMV_FE;
3162 ccm_attrs[vindex].name = "CCM_ALIGN_PERF2";
3163 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3164 "Alignment of variable %s in common block %s"
3165 " may cause a performance degradation");
3166 ccm_attrs[vindex].fmt = CCMFMT_V1V2;
3167
3168 vindex = ccm_vis_index (CCM_ALIGN_PERF3);
3169 ccm_attrs[vindex].vis = CCMV_FE;
3170 ccm_attrs[vindex].name = "CCM_ALIGN_PERF3";
3171 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3172 "Alignment of variable %s in blank common may"
3173 " cause a performance degradation");
3174 ccm_attrs[vindex].fmt = CCMFMT_V1;
3175
3176 vindex = ccm_vis_index (CCM_IO_LOOP_ARRAY);
3177 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT;
3178 ccm_attrs[vindex].name = "CCM_IO_LOOP_ARRAY";
3179 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3180 "I/O implied do item below generated an array"
3181 " section");
3182 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3183
3184 vindex = ccm_vis_index (CCM_TMPCONST);
3185 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL;
3186 ccm_attrs[vindex].name = "CCM_TMPCONST";
3187 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3188 "Implicit invocation of class %s constructor for"
3189 " temporary");
3190 ccm_attrs[vindex].fmt = CCMFMT_S1;
3191
3192 vindex = ccm_vis_index (CCM_TMPDEST);
3193 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL;
3194 ccm_attrs[vindex].name = "CCM_TMPDEST";
3195 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3196 "Implicit invocation of class %s destructor for"
3197 " temporary");
3198 ccm_attrs[vindex].fmt = CCMFMT_S1;
3199
3200 vindex = ccm_vis_index (CCM_DBL_CONST);
3201 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL;
3202 ccm_attrs[vindex].name = "CCM_DBL_CONST";
3203 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3204 "Double constant %s used in float expression");
3205 ccm_attrs[vindex].fmt = CCMFMT_S1;
3206
3207 vindex = ccm_vis_index (CCM_MINLINE);
3208 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL;
3209 ccm_attrs[vindex].name = "CCM_MINLINE";
3210 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3211 "Function %s inlined from source file %s by"
3212 " front-end");
3213 ccm_attrs[vindex].fmt = CCMFMT_P1S2;
3214
3215 vindex = ccm_vis_index (CCM_MINLINE2);
3216 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL;
3217 ccm_attrs[vindex].name = "CCM_MINLINE2";
3218 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3219 "Function %s from source file %s inlined into"
3220 " inline copy of method %s by front-end");
3221 ccm_attrs[vindex].fmt = CCMFMT_P1S2P3;
3222
3223 vindex = ccm_vis_index (CCM_MINLINE3);
3224 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL;
3225 ccm_attrs[vindex].name = "CCM_MINLINE3";
3226 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3227 "Function %s not inlined because it uses keyword"
3228 " %s");
3229 ccm_attrs[vindex].fmt = CCMFMT_P1S2;
3230
3231 vindex = ccm_vis_index (CCM_MINLINE4);
3232 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL;
3233 ccm_attrs[vindex].name = "CCM_MINLINE4";
3234 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3235 "Function %s not inlined because it is too"
3236 " complex");
3237 ccm_attrs[vindex].fmt = CCMFMT_P1;
3238
3239 vindex = ccm_vis_index (CCM_TMP_COPYOUT);
3240 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3241 ccm_attrs[vindex].name = "CCM_TMP_COPYOUT";
3242 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3243 "Argument %s copied from a temporary");
3244 ccm_attrs[vindex].fmt = CCMFMT_V1;
3245
3246 vindex = ccm_vis_index (CCM_TMP_COPYOUTM);
3247 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3248 ccm_attrs[vindex].name = "CCM_TMP_COPYOUTM";
3249 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3250 "Argument %s might be copied from a temporary;"
3251 " runtime decision made");
3252 ccm_attrs[vindex].fmt = CCMFMT_V1;
3253
3254 vindex = ccm_vis_index (CCM_TMP_COPYINOUT);
3255 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3256 ccm_attrs[vindex].name = "CCM_TMP_COPYINOUT";
3257 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3258 "Argument %s copied in and out of a temporary");
3259 ccm_attrs[vindex].fmt = CCMFMT_V1;
3260
3261 vindex = ccm_vis_index (CCM_TMP_COPYINOUTM);
3262 ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC;
3263 ccm_attrs[vindex].name = "CCM_TMP_COPYINOUTM";
3264 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3265 "Argument %s might be copied in and out of"
3266 " a temporary; runtime decision made");
3267 ccm_attrs[vindex].fmt = CCMFMT_V1;
3268
3269 vindex = ccm_vis_index (CCM_ARRAY_LOOP_2);
3270 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT;
3271 ccm_attrs[vindex].name = "CCM_ARRAY_LOOP_2";
3272 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3273 "Array statement below generated loop %s");
3274 ccm_attrs[vindex].fmt = CCMFMT_L1;
3275
3276 vindex = ccm_vis_index (CCM_ARRAY_LOOPNEST_2);
3277 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT;
3278 ccm_attrs[vindex].name = "CCM_ARRAY_LOOPNEST_2";
3279 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3280 "Array statement below generated %d nested"
3281 " loops: %s");
3282 ccm_attrs[vindex].fmt = CCMFMT_I1LL2;
3283
3284 vindex = ccm_vis_index (CCM_IO_LOOP_ARRAY_2);
3285 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT;
3286 ccm_attrs[vindex].name = "CCM_IO_LOOP_ARRAY_2";
3287 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3288 "I/O implied do item below generated an array"
3289 " section: %s");
3290 ccm_attrs[vindex].fmt = CCMFMT_L1;
3291
3292 vindex = ccm_vis_index (CCM_USER_LOOP);
3293 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT;
3294 ccm_attrs[vindex].name = "CCM_USER_LOOP";
3295 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3296 "Source loop below has tag %s");
3297 ccm_attrs[vindex].fmt = CCMFMT_L1;
3298
3299 vindex = ccm_vis_index (CCM_FOUND_LOOP);
3300 ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT;
3301 ccm_attrs[vindex].name = "CCM_FOUND_LOOP";
3302 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3303 "Discovered loop below has tag %s");
3304 ccm_attrs[vindex].fmt = CCMFMT_L1;
3305
3306 vindex = ccm_vis_index (CCM_MFUNCTION_LOOP);
3307 ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_WANT;
3308 ccm_attrs[vindex].name = "CCM_MFUNCTION_LOOP";
3309 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3310 "Copy in M-function of loop below has tag %s");
3311 ccm_attrs[vindex].fmt = CCMFMT_L1;
3312
3313 vindex = ccm_vis_index (CCM_FSIMPLE);
3314 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3315 ccm_attrs[vindex].name = "CCM_FSIMPLE";
3316 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3317 "Transformations for fsimple=%d applied");
3318 ccm_attrs[vindex].fmt = CCMFMT_I1;
3319
3320 vindex = ccm_vis_index (CCM_STACK);
3321 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3322 ccm_attrs[vindex].name = "CCM_STACK";
3323 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3324 "Function %s requires %d Mbytes of stack"
3325 " storage");
3326 ccm_attrs[vindex].fmt = CCMFMT_P1I2;
3327
3328 vindex = ccm_vis_index (CCM_TAILRECUR);
3329 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3330 ccm_attrs[vindex].name = "CCM_TAILRECUR";
3331 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3332 "Recursive tail call in %s optimized to jump to"
3333 " entry point");
3334 ccm_attrs[vindex].fmt = CCMFMT_P1;
3335
3336 vindex = ccm_vis_index (CCM_TAILCALL);
3337 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT;
3338 ccm_attrs[vindex].name = "CCM_TAILCALL";
3339 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3340 "Call to function %s was tail-call optimized");
3341 ccm_attrs[vindex].fmt = CCMFMT_P1;
3342
3343 vindex = ccm_vis_index (CCM_NI_EXIT_OR_PSEUDO);
3344 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3345 ccm_attrs[vindex].name = "CCM_NI_EXIT_OR_PSEUDO";
3346 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3347 "Template could not be early inlined because it"
3348 " contains the pseudo instruction %s");
3349 ccm_attrs[vindex].fmt = CCMFMT_S1;
3350
3351 vindex = ccm_vis_index (CCM_NI_BAD_UNARY_OPC);
3352 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3353 ccm_attrs[vindex].name = "CCM_NI_BAD_UNARY_OPC";
3354 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3355 "Template could not be early inlined because it"
3356 " contains the instruction opcode %s");
3357 ccm_attrs[vindex].fmt = CCMFMT_S1;
3358
3359 vindex = ccm_vis_index (CCM_NI_INT_LDD_ON_V9);
3360 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3361 ccm_attrs[vindex].name = "CCM_NI_INT_LDD_ON_V9";
3362 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3363 "Template could not be early inlined because it"
3364 " contains integer ldd instructions, which are"
3365 " deprecated in the v9 architecture");
3366 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3367
3368 vindex = ccm_vis_index (CCM_NI_LATE_INL_OPC);
3369 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3370 ccm_attrs[vindex].name = "CCM_NI_LATE_INL_OPC";
3371 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3372 "Template could not be early inlined because it"
3373 " contains the instruction opcode %s");
3374 ccm_attrs[vindex].fmt = CCMFMT_S1;
3375
3376 vindex = ccm_vis_index (CCM_NI_BAD_IMM_OP);
3377 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3378 ccm_attrs[vindex].name = "CCM_NI_BAD_IMM_OP";
3379 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3380 "Template could not be early inlined because the"
3381 " relocation or immediate operand %s is not well"
3382 " understood by the optimizer");
3383 ccm_attrs[vindex].fmt = CCMFMT_S1;
3384
3385 vindex = ccm_vis_index (CCM_NI_BAD_STATELEAF);
3386 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3387 ccm_attrs[vindex].name = "CCM_NI_BAD_STATELEAF";
3388 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3389 "Template could not be early inlined because it"
3390 " references the state register %s");
3391 ccm_attrs[vindex].fmt = CCMFMT_S1;
3392
3393 vindex = ccm_vis_index (CCM_NI_BAD_ASR_19);
3394 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3395 ccm_attrs[vindex].name = "CCM_NI_BAD_ASR_19";
3396 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3397 "Template could not be early inlined because"
3398 " %%asr19 is not supported in pre v8plus code");
3399 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3400
3401 vindex = ccm_vis_index (CCM_NI_BAD_FSR_USE);
3402 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3403 ccm_attrs[vindex].name = "CCM_NI_BAD_FSR_USE";
3404 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3405 "Template could not be early inlined because"
3406 " references to %%fsr can only be optimized when the"
3407 " -iaopts flag is used");
3408 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3409
3410 vindex = ccm_vis_index (CCM_NI_BAD_REGISTER);
3411 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3412 ccm_attrs[vindex].name = "CCM_NI_BAD_REGISTER";
3413 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3414 "Template could not be early inlined because it"
3415 " references the register %s");
3416 ccm_attrs[vindex].fmt = CCMFMT_S1;
3417
3418 vindex = ccm_vis_index (CCM_NI_NO_RET_VAL);
3419 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3420 ccm_attrs[vindex].name = "CCM_NI_NO_RET_VAL";
3421 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3422 "Template could not be early inlined because it"
3423 " does not return the value declared");
3424 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3425
3426 vindex = ccm_vis_index (CCM_NI_DELAY);
3427 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3428 ccm_attrs[vindex].name = "CCM_NI_DELAY";
3429 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3430 "Template could not be early inlined because it"
3431 " contains a non nop delay slot");
3432 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3433
3434 vindex = ccm_vis_index (CCM_NI_SCALL);
3435 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3436 ccm_attrs[vindex].name = "CCM_NI_SCALL";
3437 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3438 "Template could not be early inlined because it"
3439 " calls a function which returns a structure");
3440 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3441
3442 vindex = ccm_vis_index (CCM_CASE_POSITION);
3443 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3444 ccm_attrs[vindex].name = "CCM_CASE_POSITION";
3445 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3446 "Case block below was placed at position %d"
3447 " based on execution frequency");
3448 ccm_attrs[vindex].fmt = CCMFMT_I1;
3449
3450 vindex = ccm_vis_index (CCM_CALL_WITH_CODE);
3451 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3452 ccm_attrs[vindex].name = "CCM_CALL_WITH_CODE";
3453 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3454 "Call to %s replaced with inline code. %d"
3455 " loops created: %s");
3456 ccm_attrs[vindex].fmt = CCMFMT_P1I2LL3;
3457
3458 vindex = ccm_vis_index (CCM_NI_BAD_SP_ADDR);
3459 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3460 ccm_attrs[vindex].name = "CCM_NI_BAD_SP_ADDR";
3461 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3462 "Template could not be early inlined because it"
3463 " contains a %%sp+reg address");
3464 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3465
3466 vindex = ccm_vis_index (CCM_NI_BAD_SP_USAGE);
3467 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3468 ccm_attrs[vindex].name = "CCM_NI_BAD_SP_USAGE";
3469 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3470 "Template could not be early inlined because it"
3471 " uses/defines the stack pointer in a non-load/store instruction");
3472 ccm_attrs[vindex].fmt = CCMFMT_NONE;
3473
3474 vindex = ccm_vis_index (CCM_NI_MIXED_REG_TYPES);
3475 ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC;
3476 ccm_attrs[vindex].name = "CCM_NI_MIXED_REG_TYPES";
3477 ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex,
3478 "Template could not be early inlined because it"
3479 " contains register %s used as both x-register and register pair");
3480 ccm_attrs[vindex].fmt = CCMFMT_S1;
3481 }