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