1 /* Copyright (C) 2021-2023 Free Software Foundation, Inc.
4 This file is part of GNU Binutils.
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)
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.
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. */
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.
44 typedef enum ccm_fmt
{
45 CCMFMT_NONE
, /* none */
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 */
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, ... */
65 CCMFMT_V1V2
, /* v1, v2 */
66 CCMFMT_V1L2
, /* v1, l2 */
67 CCMFMT_VV1
, /* v1, v2, ... */
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, ... */
88 CCMFMT_R1VV2
, /* r1, v2, v3, ... */
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 */
102 * Low- and high-level types for commentary parameters.
105 typedef enum ccm_primtype
109 CCM_PRIMTYPE_INTEGER
,
110 CCM_PRIMTYPE_HEXSTRING
113 typedef enum ccm_hightype
117 CCM_HITYPE_PROCEDURE
,
120 CCM_HITYPE_REGIONTAG
,
121 CCM_HITYPE_HEXSTRING
,
125 typedef struct ccm_attrs
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 */
133 static Ccm_Attr_t
*ccm_attrs
; /* Table of per-msg attributes */
134 static nl_catd ccm_catd
= (nl_catd
) - 1; /* messages id */
137 * map COMPMSG_ID to table indices
140 ccm_vis_index (COMPMSG_ID m
)
142 int32_t high
= m
>> 8;
143 int32_t low
= m
& 0xFF;
144 for (int i
= 0; i
< 24; i
++, high
>>= 1)
146 return (i
<< 8) + low
+ 1;
151 * Return # parameters for this message; MAXINT for messages with
155 ccm_num_params (COMPMSG_ID m
)
159 vindex
= ccm_vis_index (m
);
160 switch (ccm_attrs
[vindex
].fmt
)
203 case CCMFMT_P1S2P3I4
:
204 case CCMFMT_L1I2I3L4
:
205 case CCMFMT_I1I2I3I4
:
208 case CCMFMT_L1I2I3I4I5
:
211 case CCMFMT_I1I2I3I4I5I6
:
214 case CCMFMT_L1I2I3I4I5I6I7
:
217 case CCMFMT_I1I2I3I4I5I6I7I8
:
220 case CCMFMT_L1I2I3I4I5I6I7I8I9
:
239 /* programming failure */
240 /* if(1) is hack to get around warning from C++ compiler */
248 ccm_paramlist_index (COMPMSG_ID m
)
251 int vindex
= ccm_vis_index (m
);
252 switch (ccm_attrs
[vindex
].fmt
)
262 case CCMFMT_P1S2P3I4
:
282 case CCMFMT_L1I2I3L4
:
283 case CCMFMT_L1I2I3I4I5
:
284 case CCMFMT_L1I2I3I4I5I6I7
:
285 case CCMFMT_L1I2I3I4I5I6I7I8I9
:
292 case CCMFMT_I1I2I3I4
:
293 case CCMFMT_I1I2I3I4I5I6
:
294 case CCMFMT_I1I2I3I4I5I6I7I8
:
317 /* programming failure */
318 /* if(1) is hack to get around warning from C++ compiler */
325 static Ccm_Primtype_t
326 ccm_param_primtype (COMPMSG_ID m
, int param_idx
)
330 if (param_idx
<= 0 || param_idx
> ccm_num_params (m
))
331 return CCM_PRIMTYPE_NONE
;
333 res
= CCM_PRIMTYPE_NONE
; /* should always be updated */
334 vindex
= ccm_vis_index (m
);
335 switch (ccm_attrs
[vindex
].fmt
)
340 * 2) Strings before Integers
344 /* programming failure */
345 /* if(1) is hack to get around warning from C++ compiler */
355 res
= CCM_PRIMTYPE_STRING
;
359 res
= CCM_PRIMTYPE_INTEGER
;
372 if (param_idx
== 1 || param_idx
== 2)
373 res
= CCM_PRIMTYPE_STRING
;
377 res
= CCM_PRIMTYPE_STRING
;
378 else if (param_idx
== 2)
379 res
= CCM_PRIMTYPE_HEXSTRING
;
384 res
= CCM_PRIMTYPE_STRING
;
385 else if (param_idx
== 2)
386 res
= CCM_PRIMTYPE_INTEGER
;
391 res
= CCM_PRIMTYPE_INTEGER
;
392 else if (param_idx
== 2)
393 res
= CCM_PRIMTYPE_STRING
;
398 if (param_idx
>= 1 && param_idx
<= 3)
399 res
= CCM_PRIMTYPE_STRING
;
403 if (param_idx
== 1 || param_idx
== 2)
404 res
= CCM_PRIMTYPE_STRING
;
405 else if (param_idx
== 3)
406 res
= CCM_PRIMTYPE_INTEGER
;
410 if (param_idx
== 1 || param_idx
== 3)
411 res
= CCM_PRIMTYPE_STRING
;
412 else if (param_idx
== 2)
413 res
= CCM_PRIMTYPE_INTEGER
;
417 res
= CCM_PRIMTYPE_STRING
;
418 else if (param_idx
== 2 || param_idx
== 3)
419 res
= CCM_PRIMTYPE_INTEGER
;
423 res
= CCM_PRIMTYPE_INTEGER
;
424 else if (param_idx
== 2 || param_idx
== 3)
425 res
= CCM_PRIMTYPE_STRING
;
428 if (param_idx
== 1 || param_idx
== 3)
429 res
= CCM_PRIMTYPE_INTEGER
;
430 else if (param_idx
== 2)
431 res
= CCM_PRIMTYPE_STRING
;
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
;
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
;
445 case CCMFMT_I1I2I3I4
:
446 if (param_idx
>= 1 && param_idx
<= 4)
447 res
= CCM_PRIMTYPE_INTEGER
;
449 case CCMFMT_L1I2I3I4I5
:
451 res
= CCM_PRIMTYPE_STRING
;
452 else if (param_idx
>= 2 && param_idx
<= 5)
453 res
= CCM_PRIMTYPE_INTEGER
;
455 case CCMFMT_I1I2I3I4I5I6
:
456 if (param_idx
>= 1 && param_idx
<= 6)
457 res
= CCM_PRIMTYPE_INTEGER
;
459 case CCMFMT_L1I2I3I4I5I6I7
:
461 res
= CCM_PRIMTYPE_STRING
;
462 else if (param_idx
>= 2 && param_idx
<= 7)
463 res
= CCM_PRIMTYPE_INTEGER
;
465 case CCMFMT_I1I2I3I4I5I6I7I8
:
466 if (param_idx
>= 1 && param_idx
<= 8)
467 res
= CCM_PRIMTYPE_INTEGER
;
469 case CCMFMT_L1I2I3I4I5I6I7I8I9
:
471 res
= CCM_PRIMTYPE_STRING
;
472 else if (param_idx
>= 2 && param_idx
<= 9)
473 res
= CCM_PRIMTYPE_INTEGER
;
483 res
= CCM_PRIMTYPE_STRING
;
488 res
= CCM_PRIMTYPE_INTEGER
;
490 res
= CCM_PRIMTYPE_STRING
;
494 res
= CCM_PRIMTYPE_STRING
;
496 res
= CCM_PRIMTYPE_INTEGER
;
500 res
= CCM_PRIMTYPE_INTEGER
;
502 res
= CCM_PRIMTYPE_STRING
;
506 /* programming failure */
507 /* if(1) is hack to get around warning from C++ compiler */
516 ccm_param_hightype (COMPMSG_ID m
, int param_idx
)
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
)
528 /* programming failure */
529 /* if(1) is hack to get around warning from C++ compiler */
535 res
= CCM_HITYPE_STRING
;
538 if (param_idx
== 1 || param_idx
== 2)
539 res
= CCM_HITYPE_STRING
;
543 res
= CCM_HITYPE_STRING
;
544 else if (param_idx
== 2)
545 res
= CCM_HITYPE_LOOPTAG
;
549 res
= CCM_HITYPE_STRING
;
550 else if (param_idx
== 2)
551 res
= CCM_HITYPE_LOOPTAG
;
553 res
= CCM_HITYPE_STRING
;
557 res
= CCM_HITYPE_STRING
;
558 else if (param_idx
== 2)
559 res
= CCM_HITYPE_REGIONTAG
;
561 res
= CCM_HITYPE_VARIABLE
;
565 res
= CCM_HITYPE_STRING
;
566 else if (param_idx
== 2)
567 res
= CCM_HITYPE_HEXSTRING
;
571 res
= CCM_HITYPE_PROCEDURE
;
575 res
= CCM_HITYPE_PROCEDURE
;
576 else if (param_idx
== 2)
577 res
= CCM_HITYPE_STRING
;
580 if (param_idx
== 1 || param_idx
== 3)
581 res
= CCM_HITYPE_PROCEDURE
;
582 else if (param_idx
== 2)
583 res
= CCM_HITYPE_STRING
;
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
;
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
;
602 if (param_idx
== 1 || param_idx
== 2)
603 res
= CCM_HITYPE_PROCEDURE
;
607 res
= CCM_HITYPE_PROCEDURE
;
608 else if (param_idx
== 2)
609 res
= CCM_HITYPE_LOOPTAG
;
613 res
= CCM_HITYPE_PROCEDURE
;
614 else if (param_idx
== 2)
615 res
= CCM_HITYPE_INTEGER
;
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
;
627 res
= CCM_HITYPE_PROCEDURE
;
628 else if (param_idx
== 2 || param_idx
== 3)
629 res
= CCM_HITYPE_INTEGER
;
633 res
= CCM_HITYPE_PROCEDURE
;
634 else if (param_idx
== 2)
635 res
= CCM_HITYPE_INTEGER
;
637 res
= CCM_HITYPE_LOOPTAG
;
640 res
= CCM_HITYPE_PROCEDURE
;
644 res
= CCM_HITYPE_VARIABLE
;
647 if (param_idx
== 1 || param_idx
== 2)
648 res
= CCM_HITYPE_VARIABLE
;
652 res
= CCM_HITYPE_VARIABLE
;
653 else if (param_idx
== 2)
654 res
= CCM_HITYPE_LOOPTAG
;
657 res
= CCM_HITYPE_VARIABLE
;
661 res
= CCM_HITYPE_LOOPTAG
;
665 res
= CCM_HITYPE_LOOPTAG
;
666 else if (param_idx
== 2)
667 res
= CCM_HITYPE_STRING
;
670 if (param_idx
== 1 || param_idx
== 3)
671 res
= CCM_HITYPE_LOOPTAG
;
672 else if (param_idx
== 2)
673 res
= CCM_HITYPE_STRING
;
677 res
= CCM_HITYPE_LOOPTAG
;
678 else if (param_idx
== 2)
679 res
= CCM_HITYPE_PROCEDURE
;
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
;
691 res
= CCM_HITYPE_LOOPTAG
;
693 res
= CCM_HITYPE_PROCEDURE
;
697 res
= CCM_HITYPE_LOOPTAG
;
699 res
= CCM_HITYPE_VARIABLE
;
702 if (param_idx
== 1 || param_idx
== 2)
703 res
= CCM_HITYPE_LOOPTAG
;
706 if (param_idx
>= 1 && param_idx
<= 3)
707 res
= CCM_HITYPE_LOOPTAG
;
710 res
= CCM_HITYPE_LOOPTAG
;
714 res
= CCM_HITYPE_LOOPTAG
;
715 else if (param_idx
== 2)
716 res
= CCM_HITYPE_REGIONTAG
;
720 res
= CCM_HITYPE_LOOPTAG
;
721 else if (param_idx
== 2)
722 res
= CCM_HITYPE_INTEGER
;
725 if (param_idx
== 1 || param_idx
== 3)
726 res
= CCM_HITYPE_LOOPTAG
;
727 else if (param_idx
== 2)
728 res
= CCM_HITYPE_INTEGER
;
732 res
= CCM_HITYPE_INTEGER
;
734 res
= CCM_HITYPE_LOOPTAG
;
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
;
742 case CCMFMT_L1I2I3I4I5
:
744 res
= CCM_HITYPE_LOOPTAG
;
745 else if (param_idx
>= 2 && param_idx
<= 5)
746 res
= CCM_HITYPE_INTEGER
;
748 case CCMFMT_L1I2I3I4I5I6I7
:
750 res
= CCM_HITYPE_LOOPTAG
;
751 else if (param_idx
>= 2 && param_idx
<= 7)
752 res
= CCM_HITYPE_INTEGER
;
754 case CCMFMT_L1I2I3I4I5I6I7I8I9
:
756 res
= CCM_HITYPE_LOOPTAG
;
757 else if (param_idx
>= 2 && param_idx
<= 9)
758 res
= CCM_HITYPE_INTEGER
;
762 res
= CCM_HITYPE_LOOPTAG
;
764 res
= CCM_HITYPE_INTEGER
;
768 res
= CCM_HITYPE_REGIONTAG
;
772 res
= CCM_HITYPE_REGIONTAG
;
774 res
= CCM_HITYPE_VARIABLE
;
778 res
= CCM_HITYPE_INTEGER
;
781 if (param_idx
== 1 || param_idx
== 3)
782 res
= CCM_HITYPE_INTEGER
;
783 else if (param_idx
== 2)
784 res
= CCM_HITYPE_PROCEDURE
;
788 res
= CCM_HITYPE_INTEGER
;
789 else if (param_idx
== 2)
790 res
= CCM_HITYPE_VARIABLE
;
794 res
= CCM_HITYPE_INTEGER
;
795 else if (param_idx
== 2 || param_idx
== 3)
796 res
= CCM_HITYPE_VARIABLE
;
800 res
= CCM_HITYPE_INTEGER
;
801 else if (param_idx
== 2)
802 res
= CCM_HITYPE_LOOPTAG
;
806 res
= CCM_HITYPE_INTEGER
;
808 res
= CCM_HITYPE_LOOPTAG
;
810 case CCMFMT_I1I2I3I4
:
811 if (param_idx
>= 1 && param_idx
<= 4)
812 res
= CCM_HITYPE_INTEGER
;
814 case CCMFMT_I1I2I3I4I5I6
:
815 if (param_idx
>= 1 && param_idx
<= 6)
816 res
= CCM_HITYPE_INTEGER
;
818 case CCMFMT_I1I2I3I4I5I6I7I8
:
819 if (param_idx
>= 1 && param_idx
<= 8)
820 res
= CCM_HITYPE_INTEGER
;
824 /* programming failure */
825 /* if(1) is hack to get around warning from C++ compiler */
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
)
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
925 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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"
933 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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
;
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"
950 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
1044 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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"
1052 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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
;
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
;
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
;
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
;
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:"
1091 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1099 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1107 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1115 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1123 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1131 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1139 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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"
1147 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1155 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1163 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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
;
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:"
1179 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1187 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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:"
1195 ccm_attrs
[vindex
].fmt
= CCMFMT_VV1
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
1259 ccm_attrs
[vindex
].fmt
= CCMFMT_L1PP2
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
1361 ccm_attrs
[vindex
].fmt
= CCMFMT_L1
;
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"
1369 ccm_attrs
[vindex
].fmt
= CCMFMT_L1
;
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
;
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
;
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
;
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
;
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:"
1408 ccm_attrs
[vindex
].fmt
= CCMFMT_L1VV2
;
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:"
1416 ccm_attrs
[vindex
].fmt
= CCMFMT_L1VV2
;
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:"
1424 ccm_attrs
[vindex
].fmt
= CCMFMT_L1VV2
;
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:"
1432 ccm_attrs
[vindex
].fmt
= CCMFMT_S1L2VV3
;
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:"
1440 ccm_attrs
[vindex
].fmt
= CCMFMT_L1VV2
;
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
;
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
;
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
;
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:"
1469 ccm_attrs
[vindex
].fmt
= CCMFMT_S1R2VV3
;
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
;
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
;
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
;
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
;
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:"
1506 ccm_attrs
[vindex
].fmt
= CCMFMT_R1VV2
;
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:"
1514 ccm_attrs
[vindex
].fmt
= CCMFMT_R1VV2
;
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
;
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:"
1529 ccm_attrs
[vindex
].fmt
= CCMFMT_R1VV2
;
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:"
1537 ccm_attrs
[vindex
].fmt
= CCMFMT_R1VV2
;
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"
1545 ccm_attrs
[vindex
].fmt
= CCMFMT_S1R2VV3
;
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
;
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
;
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"
1569 ccm_attrs
[vindex
].fmt
= CCMFMT_V1L2
;
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
;
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
;
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"
1591 ccm_attrs
[vindex
].fmt
= CCMFMT_I1
;
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
;
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
;
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
;
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
;
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
;
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"
1639 ccm_attrs
[vindex
].fmt
= CCMFMT_I1
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
1703 ccm_attrs
[vindex
].fmt
= CCMFMT_PP1
;
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
;
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
;
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"
1725 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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"
1735 ccm_attrs
[vindex
].fmt
= CCMFMT_I1I2I3I4I5I6I7I8
;
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
;
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
;
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
;
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
;
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"
1775 ccm_attrs
[vindex
].fmt
= CCMFMT_L1L2
;
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
;
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
;
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
;
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
;
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:"
1815 ccm_attrs
[vindex
].fmt
= CCMFMT_L1I2LL3
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
1906 ccm_attrs
[vindex
].fmt
= CCMFMT_L1PP2
;
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
;
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
;
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
;
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"
1937 ccm_attrs
[vindex
].fmt
= CCMFMT_L1I2I3I4I5I6I7I8I9
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
2006 ccm_attrs
[vindex
].fmt
= CCMFMT_L1L2L3
;
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"
2015 ccm_attrs
[vindex
].fmt
= CCMFMT_L1L2L3
;
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
;
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
;
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
;
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"
2049 ccm_attrs
[vindex
].fmt
= CCMFMT_L1I2I3I4I5I6I7I8I9
;
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
;
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"
2064 ccm_attrs
[vindex
].fmt
= CCMFMT_I1
;
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"
2072 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
,
2253 ccm_attrs
[vindex
].fmt
= CCMFMT_L1
;
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"
2261 ccm_attrs
[vindex
].fmt
= CCMFMT_L1I2
;
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"
2269 ccm_attrs
[vindex
].fmt
= CCMFMT_L1
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
2491 ccm_attrs
[vindex
].fmt
= CCMFMT_P1I2
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
2556 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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
;
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
;
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
;
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"
2589 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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"
2597 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
2656 ccm_attrs
[vindex
].fmt
= CCMFMT_P1S2I3
;
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
;
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"
2672 ccm_attrs
[vindex
].fmt
= CCMFMT_P1I2L3
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
2738 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
2942 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
3008 ccm_attrs
[vindex
].fmt
= CCMFMT_S1X2
;
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"
3016 ccm_attrs
[vindex
].fmt
= CCMFMT_S1X2
;
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"
3024 ccm_attrs
[vindex
].fmt
= CCMFMT_I1
;
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"
3032 ccm_attrs
[vindex
].fmt
= CCMFMT_I1
;
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
;
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"
3048 ccm_attrs
[vindex
].fmt
= CCMFMT_I1V2
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
3127 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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
;
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
;
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
;
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
;
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
;
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
;
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"
3182 ccm_attrs
[vindex
].fmt
= CCMFMT_NONE
;
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"
3190 ccm_attrs
[vindex
].fmt
= CCMFMT_S1
;
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"
3198 ccm_attrs
[vindex
].fmt
= CCMFMT_S1
;
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
;
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"
3213 ccm_attrs
[vindex
].fmt
= CCMFMT_P1S2
;
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
;
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"
3229 ccm_attrs
[vindex
].fmt
= CCMFMT_P1S2
;
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"
3237 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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
;
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
;
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
;
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
;
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
;
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"
3282 ccm_attrs
[vindex
].fmt
= CCMFMT_I1LL2
;
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"
3290 ccm_attrs
[vindex
].fmt
= CCMFMT_L1
;
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
;
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
;
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
;
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
;
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"
3326 ccm_attrs
[vindex
].fmt
= CCMFMT_P1I2
;
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"
3334 ccm_attrs
[vindex
].fmt
= CCMFMT_P1
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;