]> Git Repo - binutils.git/blob - gprofng/src/comp_com.h
Automatic date update in version.in
[binutils.git] / gprofng / src / comp_com.h
1 /* Copyright (C) 2021 Free Software Foundation, Inc.
2    Contributed by Oracle.
3
4    This file is part of GNU Binutils.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3, or (at your option)
9    any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, 51 Franklin Street - Fifth Floor, Boston,
19    MA 02110-1301, USA.  */
20
21 #ifndef _COMP_COM_H
22 #define _COMP_COM_H
23
24 #include <sys/types.h>
25 #include <nl_types.h>
26
27 /*
28  * This file describes format for the compiler-commentary
29  * section to be added to .o's and propagated to the a.out.  It reflects
30  * information the compiler can expose to the user about his or her
31  * program.  The section should be generated for all compiles where
32  * the user has specified -g on the compile line.
33  *
34  * In the analyzer, display of the messages will be governed by a user UI
35  * that sets a vis_bits bitmap, and matches it against a show_bits
36  * bitmap table, which is maintained separately from the producer
37  * code.  For any message, if (vis_bits&show_bits) is  non-zero, the
38  * message is shown.  If zero, the message is not shown.  A similar
39  * mechanism would be used for a stand-alone source or disassembly browser.
40  *
41  *
42  * The .compcom Section
43  * --------------------
44  * The section will be named ".compcom"; it is generated for each
45  * .o, and aggregated into a single section in the a.out.  In that
46  * section, each .o's data is separate, and the tools will loop
47  * over the data for each .o in order to find the subsection for
48  * the particular .o being annotated.
49  *
50  *
51  * Since the header is fixed-length, and the total size of the section
52  * can be easily determined as:
53  *
54  *     sizeof(stuct compcomhdr)
55  *      + msgcount * sizeof(struct compmsg)
56  *      + paramcount * sizeof(int32_t)
57  *      + stringlen
58  *
59  * there is no need to have the size in the header.
60  */
61
62 typedef struct
63 { /* Header describing the section */
64   int32_t srcname;          /* index into strings of source file path */
65   int32_t version;          /* a version number for the .compcom format */
66   int32_t msgcount;         /* count of messages in the section */
67   int32_t paramcount;       /* count of parameters in the section */
68   int32_t stringcount;      /* count of strings in the section */
69   int32_t stringlen;        /* count of total bytes in strings */
70 } compcomhdr;
71
72 /*
73  * The data for the .o after the header as:
74  *
75  *    compmsg   msgs[msgcount];         the array of messages
76  *    int32_t   param[paramcount];      the parameters used in the messages
77  *                                      parameters are either integers or
78  *                                      string-indices
79  *    char      msgstrings[stringlen];  the strings used in the messages
80  */
81
82 /*
83  * Message Classes and Visualization Bits
84  * --------------------------------------
85  * Each of the messages above may belong to zero or more visualization
86  * classes, governed by a table using zero or more of the following symbolic
87  * names for the classes:
88  */
89 typedef enum {
90 CCMV_WANT   = 0x000,            /* High-priority RFE -- used only for human */
91                                 /*   reading of message list */
92 CCMV_UNIMPL = 0x000,            /* Unimplemented -- used only for human */
93                                 /*   reading of message list */
94 CCMV_OBS    = 0x000,            /* Obsolete -- to be replaced by a different */
95                                 /*   message with different parameters -- */
96                                 /*   used only for human reading of message */
97                                 /*   list */
98 CCMV_VER    = 0x001,            /* Versioning messages */
99 CCMV_WARN   = 0x002,            /* Warning messages */
100 CCMV_PAR    = 0x004,            /* Parallelization messages */
101 CCMV_QUERY  = 0x008,            /* Compiler queries */
102 CCMV_LOOP   = 0x010,            /* Loop detail messages */
103 CCMV_PIPE   = 0x020,            /* Pipelining messages */
104 CCMV_INLINE = 0x040,            /* Inlining information */
105 CCMV_MEMOPS = 0x080,            /* Messages concerning memory operations */
106 CCMV_FE     = 0x100,            /* Front-end messages (all compilers) */
107 CCMV_CG     = 0x200,            /* Code-generator messages (all compilers) */
108 CCMV_BASIC  = 0x400,            /* for default messages */
109 CCMV_ALL    = 0x7FFFFFFF        /* for all messages */
110 } COMPCLASS_ID;
111
112 typedef enum ccm_msgid
113 {
114   /*    Group: Versioning Messages */
115   /*    All of these are global to the .o, and will */
116   /*    have lineno = pcoffset = 0 */
117
118 CCM_MODDATE=0x00100,    /* Source file <s1>, last modified on date <s2> */
119 CCM_COMPVER,            /* Component <s1>, version <s2> */
120                         /* [Emitted for each component of the compiler.] */
121 CCM_COMPDATE,           /* Compilation date <s1> */
122                         /* [<s1> is an I18n string with the date and time] */
123 CCM_COMPOPT,            /* Compilation options <s1> */
124                         /* [As specified by the user] */
125 CCM_ACOMPOPT,           /* Actual Compilation options <s1> */
126                         /* [As expanded by the driver] */
127
128   /* Group: Warning Messages */
129 CCM_VAR_ALIAS=0x00200,  /* Variable <v1> aliased to <v2> */
130 CCM_FBIRDIFF,           /* Profile feedback data inconsistent with */
131                         /* intermediate representation file; check compiler */
132                         /* version, flags and source file */
133 CCM_OPTRED_SWAP,        /* Optimization level for <p1> reduced from <i2> to */
134                         /* <i3> due to insufficient swap space */
135 CCM_OPTRED_CPLX,        /* Optimization level for <p1> reduced from <i2> to */
136                         /* <i3> due to program complexity */
137 CCM_UNKNOWN,            /* Unexpected compiler comment <i1> */
138
139   /* Group: Parallelization Messages */
140 CCM_UNPAR_CALL=0x00400, /* Loop below not parallelized because it contains a */
141                         /* call to <p1> */
142
143   /* CCMV_WANT: Don't generate CCM_PAR_SER; always use CCM_PAR_SER_VER */
144 CCM_PAR_SER,            /* Both serial and parallel versions generated for */
145                         /* loop below */
146 CCM_PAR_SER_VER,        /* Both serial and parallel versions generated for */
147                         /* loop below; with parallel version used if <s1>, */
148                         /* serial otherwise */
149 CCM_PAR_DRECTV,         /* Loop below parallelized by explicit user */
150                         /* directive */
151 CCM_APAR,               /* Loop below autoparallelized */
152 CCM_AUTOPAR,            /* Loop below autoparallelized; equivalent */
153                         /* explict directive is <s1> */
154 CCM_UNPAR_DD,           /* Loop below could not be parallelized because of a */
155                         /* data dependency on <v1>, <v2>, ... */
156                         /* [The number of parameters will determine how many */
157                         /* names appear, and the formatter will get the */
158                         /* commas right.] */
159 CCM_UNPAR_DDA,          /* Loop below could not be parallelized because of a */
160                         /* data dependency or aliasing of <v1>, <v2>, ... */
161 CCM_UNPAR_ANONDD,       /* Loop below could not be parallelized because of */
162                         /* an anonymous data dependency */
163 CCM_UNPAR_ANONDDA,      /* Loop below could not be parallelized because of */
164                         /* an anonymous data dependency or aliasing */
165 CCM_PAR_WORK,           /* Loop below parallelized, but might not contain */
166                         /* enough work to be efficiently run in parallel */
167 CCM_UNPAR_EXIT,         /* Loop below not parallelized because it contains */
168                         /* multiple exit points */
169 CCM_UNPAR_STRNG,        /* Loop below not parallelized because it contains a */
170                         /* strange flow of control */
171 CCM_UNPAR_IO,           /* Loop below not parallelized because it contains */
172                         /* I/O or other MT-unsafe calls */
173 CCM_PAR_BODY_NAME,      /* Parallel loop-body code is in function <p1> */
174 CCM_UNPAR_NLOOPIDX,     /* Loop below not parallelized because loop index */
175                         /* not found */
176 CCM_UNPAR_DRECTV,       /* Loop below not parallelized because of explicit */
177                         /* user directive */
178 CCM_UNPAR_NOTPROFIT,    /* Loop below not parallelized because it was not */
179                         /* profitable to do so */
180 CCM_UNPAR_NEST,         /* Loop below not parallelized because it was */
181                         /* nested in a parallel loop */
182 CCM_UNPAR,              /* Loop below not parallelized */
183 CCM_UNPAR_NOAUTO,       /* Loop below not parallelized because */
184                         /* autoparallelization is not enabled */
185 CCM_PR_L_VAR,           /* Private variables in loop below: */
186                         /* <v1>, <v2>, ... */
187                         /* [The number of parameters will determine how many */
188                         /* names appear, and the formatter will get the */
189                         /* commas right.] */
190 CCM_SH_L_VAR,           /* Shared variables in loop below: */
191                         /* <v1>, <v2>, ... */
192 CCM_TP_L_VAR,           /* Threadprivate variables in loop below: */
193                         /* <v1>, <v2>, ... */
194 CCM_RV_L_VAR,           /* Reduction variables in loop below: */
195                         /* <v1>, <v2>, ... */
196 CCM_IM_L_VAR,           /* Implicit variables in loop below: */
197                         /* <v1>, <v2>, ... */
198 CCM_PR_O_VAR,           /* Private variables in OpenMP construct below: */
199                         /* <v1>, <v2>, ... */
200 CCM_SH_O_VAR,           /* Shared variables in OpenMP construct below: */
201                         /* <v1>, <v2>, ... */
202 CCM_TP_O_VAR,           /* Threadprivate variables in OpenMP construct */
203                         /* below: <v1>, <v2>, ... */
204 CCM_RV_O_VAR,           /* Reduction variables in OpenMP construct below: */
205                         /* <v1>, <v2>, ... */
206 CCM_IM_O_VAR,           /* Implicit variables in OpenMP construct below: */
207                         /* <v1>, <v2>, ... */
208 CCM_UNPAR_IN_OMP,       /* Loop below not parallelized because it is inside */
209                         /* an OpenMP region */
210 CCM_FP_O_VAR,           /* Firstprivate variables in OpenMP construct below: */
211                         /* <v1>, <v2>, ... */
212 CCM_LP_O_VAR,           /* Lastprivate variables in OpenMP construct below: */
213                         /* <v1>, <v2>, ... */
214 CCM_CP_O_VAR,           /* Copyprivate variables in OpenMP construct below: */
215                         /* <v1>, <v2>, ... */
216 CCM_PR_OAS_VAR,         /* Variables autoscoped as PRIVATE in OpenMP */
217                         /* construct below: <v1>, <v2>, ... */
218 CCM_SH_OAS_VAR,         /* Variables autoscoped as SHARED in OpenMP */
219                         /* construct below: <v1>, <v2>, ... */
220 CCM_FP_OAS_VAR,         /* Variables autoscoped as FIRSTPRIVATE in OpenMP */
221                         /* construct below: <v1>, <v2>, ... */
222 CCM_LP_OAS_VAR,         /* Variables autoscoped as LASTPRIVATE in OpenMP */
223                         /* construct below: <v1>, <v2>, ... */
224 CCM_RV_OAS_VAR,         /* Variables autoscoped as REDUCTION in OpenMP */
225                         /* construct below: <v1>, <v2>, ... */
226 CCM_FAIL_OAS_VAR,       /* Variables cannot be autoscoped in OpenMP */
227                         /* construct below: <v1>, <v2>, ... */
228 CCM_SERIALIZE_OAS,      /* OpenMP parallel region below is serialized */
229                         /* because autoscoping has failed */
230 CCM_UNPAR_CALL_2,       /* <l1> not parallelized because it contains calls */
231                         /* to: <p2>, <p3>, ... */
232 CCM_PAR_DRECTV_2,       /* <l1> parallelized by explicit user directive */
233 CCM_APAR_2,             /* <l1> autoparallelized */
234 CCM_AUTOPAR_2,          /* <l1> autoparallelized; equivalent */
235                         /* explict directive is <s2> */
236 CCM_UNPAR_DD_2,         /* <l1> could not be parallelized because of */
237                         /* data dependences on: <v2>, <v3>, ... */
238                         /* [The number of parameters will determine how many */
239                         /* names appear, and the formatter will get the */
240                         /* commas right.] */
241 CCM_UNPAR_DDA_2,        /* <l1> could not be parallelized because of a */
242                         /* data dependence or aliasing of: <v2>, <v3>, ... */
243 CCM_UNPAR_ANONDD_2,     /* <l1> could not be parallelized because of an */
244                         /* anonymous data dependence */
245 CCM_UNPAR_ANONDDA_2,    /* <l1> could not be parallelized because of an */
246                         /* anonymous data dependence or aliasing */
247 CCM_PAR_WORK_2,         /* <l1> parallelized, but might not contain */
248                         /* enough work to run efficiently in parallel */
249 CCM_UNPAR_EXIT_2,       /* <l1> not parallelized because it contains */
250                         /* multiple exit points */
251 CCM_UNPAR_STRANGE_2,    /* <l1> not parallelized because it contains a */
252                         /* strange flow of control */
253 CCM_UNPAR_IO_2,         /* <l1> not parallelized because it contains */
254                         /* I/O or other MT-unsafe calls */
255 CCM_PAR_BODY_NAME_2,    /* <l1> parallel loop-body code placed in */
256                         /* function <p2> along with <i3> inner loops */
257 CCM_UNPAR_NLOOPIDX_2,   /* <l1> not parallelized because loop index not */
258                         /* found */
259 CCM_UNPAR_DRECTV_2,     /* <l1> not parallelized because of explicit */
260                         /* user directive */
261 CCM_UNPAR_NOTPROFIT_2,  /* <l1> not parallelized because it was not */
262                         /* profitable to do so */
263 CCM_UNPAR_NEST_2,       /* <l1> not parallelized because it was */
264                         /* nested within a parallel loop */
265 CCM_UNPAR_2,            /* <l1> not parallelized */
266 CCM_UNPAR_NOAUTO_2,     /* <l1> not parallelized because */
267                         /* autoparallelization is not enabled */
268 CCM_PR_L_VAR_2,         /* Private variables in <l1>: */
269                         /* <v2>, <v3>, ... */
270                         /* [The number of parameters will determine how many */
271                         /* names appear, and the formatter will get the */
272                         /* commas right.] */
273 CCM_SH_L_VAR_2,         /* Shared variables in <l1>: */
274                         /* <v2>, <v3>, ... */
275 CCM_TP_L_VAR_2,         /* Threadprivate variables in <l1>: */
276                         /* <v2>, <v3>, ... */
277 CCM_RV_L_VAR_2,         /* Reduction variables of operator <s1> in <l2>: */
278                         /* <v3>, <v4>, ... */
279 CCM_IM_L_VAR_2,         /* Implicit variables in <l1>: */
280                         /* <v2>, <v3>, ... */
281 CCM_PR_O_VAR_2,         /* Private variables in <r1>: */
282                         /* <v2>, <v3>, ... */
283 CCM_SH_O_VAR_2,         /* Shared variables in <r1>: */
284                         /* <v2>, <v3>, ... */
285 CCM_TP_O_VAR_2,         /* Threadprivate variables in <r1>: */
286                         /* <v2>, <v3>, ... */
287 CCM_RV_O_VAR_2,         /* Reduction variables of operator <s1> in <r2>: */
288                         /* <v3>, <v4>, ... */
289 CCM_IM_O_VAR_2,         /* Implicit variables in <r1>: */
290                         /* <v2>, <v3>, ... */
291 CCM_UNPAR_IN_OMP_2,     /* <l1> not parallelized because it is inside */
292                         /* OpenMP region <r2> */
293 CCM_FP_O_VAR_2,         /* Firstprivate variables in <r1>: */
294                         /* <v2>, <v3>, ... */
295 CCM_LP_O_VAR_2,         /* Lastprivate variables in <r1>: */
296                         /* <v2>, <v3>, ... */
297 CCM_CP_O_VAR_2,         /* Copyprivate variables in <r1>: */
298                         /* <v2>, <v3>, ... */
299 CCM_PR_OAS_VAR_2,       /* Variables autoscoped as PRIVATE in <r1>: */
300                         /* <v2>, <v3>, ... */
301 CCM_SH_OAS_VAR_2,       /* Variables autoscoped as SHARED in <r1>: */
302                         /* <v2>, <v3>, ... */
303 CCM_FP_OAS_VAR_2,       /* Variables autoscoped as FIRSTPRIVATE in <r1>: */
304                         /* <v2>, <v3>, ... */
305 CCM_LP_OAS_VAR_2,       /* Variables autoscoped as LASTPRIVATE in <r1>: */
306                         /* <v2>, <v3>, ... */
307 CCM_RV_OAS_VAR_2,       /* Variables autoscoped as REDUCTION of operator */
308                         /* <s1> in <r2>: <v3>, <v4>, ... */
309 CCM_FAIL_OAS_VAR_2,     /* Variables treated as shared because they cannot */
310                         /* be autoscoped in <r1>: <v2>, <v3>, ... */
311 CCM_SERIALIZE_OAS_2,    /* <r1> will be executed by a single thread because */
312                         /* autoscoping for some variables was not successful */
313
314   /* Group: Parallelization Questions asked of the user */
315   /*    How will the user answer these questions? */
316 CCM_QPERMVEC=0x00800,   /* Is <v1> a permutation vector during execution of */
317                         /* <l2>? */
318 CCM_QEXPR,              /* Is expression <s1> true for <l2>? */
319 CCM_QSAFECALL,          /* Is subroutine <p1> MP-safe as used in <l2>? */
320
321   /* Group: Loop Optimization Messages */
322 CCM_LCOST=0x01000,      /* Loop below estimated to cost <i1> cycles per */
323                         /* iteration */
324 CCM_UNROLL,             /* Loop below unrolled <i1> times */
325   /* CCMV_WANT: the next one should be replaced by CCM_IMIX2 */
326 CCM_IMIX,               /* Loop below has <i1> loads, <i2> stores, */
327                         /* <i3> prefetches, <i4> FPadds, <i5> FPmuls, and */
328                         /* <i6> FPdivs per iteration */
329 CCM_SPILLS,             /* Loop below required <i1> integer register spills, */
330                         /* <i2> FP register spills, and used */
331                         /* <i3> integer registers and <i4> FP registers */
332 CCM_LFISSION,           /* Loop below fissioned into <i1> loops */
333 CCM_LPEEL,              /* Loop below had iterations peeled off for better */
334                         /* unrolling and/or parallelization */
335 CCM_LBLOCKED,           /* Loop below blocked by <i1> for improved cache */
336                         /* performance */
337 CCM_LTILED,             /* Loop below tiled for better performance */
338 CCM_LUNRJAM,            /* Loop below unrolled and jammed */
339 CCM_LWHILE2DO,          /* Bounds test for loop below moved to top of loop */
340 CCM_L2CALL,             /* Loop below replaced by a call to <p1> */
341 CCM_LDEAD,              /* Loop below deleted as dead code */
342 CCM_LINTRCHNG,          /* Loop below interchanged with loop on line <i1> */
343 CCM_FUSEDTO,            /* Loop below fused with loop on line <i1> */
344 CCM_FUSEDFROM,          /* Loop from line <i1> fused with loop below */
345 CCM_VECINTRNSC,         /* Loop below transformed to use calls to vector */
346                         /* intrinsic <p1>, <p2>, ... */
347                         /* [The number of parameters will determine how many */
348                         /* names appear, and the formatter will get the */
349                         /* commas right.] */
350 CCM_LSTRIPMINE,         /* Loop below strip-mined */
351 CCM_LNEST2LOOPS,        /* Loop below collapsed with loop on line <i1> */
352 CCM_LREVERSE,           /* Loop below has had its iteration direction */
353                         /* reversed */
354 CCM_IMIX2,              /* Loop below has <i1> loads, <i2> stores, */
355                         /* <i3> prefetches, <i4> FPadds, <i5> FPmuls, */
356                         /* <i6> FPdivs, <i7> FPsubs, and <i8> FPsqrts per */
357                         /* iteration */
358 CCM_LUNRFULL,           /* Loop below fully unrolled */
359 CCM_ELIM_NOAMORTINST,   /* Loop below was eliminated as it contains no */
360                         /* non-amortizable instructions */
361 CCM_COMP_DALIGN,        /* Performance of loop below could be improved */
362                         /* by compiling with -dalign */
363 CCM_INTIMIX,            /* Loop below has <i1> int-loads, <i2> int-stores, */
364                         /* <i3> alu-ops, <i4> muls, <i5> int-divs and */
365                         /* <i6> shifts per iteration */
366 CCM_LMULTI_VERSION,     /* <l1> multi-versioned.  Specialized version */
367                         /* is <l2> */
368 CCM_LCOST_2,            /* <l1> estimated to cost <i2> cycles per iteration */
369 CCM_UNROLL_2,           /* <l1> unrolled <i2> times */
370
371   /* CCMV_WANT: the next one should be replaced by CCM_IMIX2_B or CCM_IMIX3_B */
372 CCM_IMIX_B,             /* <l1> has <i2> loads, <i3> stores, */
373                         /* <i4> prefetches, <i5> FPadds, <i6> FPmuls, and */
374                         /* <i7> FPdivs per iteration */
375 CCM_SPILLS_2,           /* <l1> required <i2> integer register spills, */
376                         /* <i3> FP register spills, and used */
377                         /* <i4> integer registers and <i5> FP registers */
378 CCM_LFISSION_2,         /* <l1> fissioned into <i2> loops, generating: */
379                         /* <l3>, <l4>, ... */
380                         /* [The number of parameters will determine how many */
381                         /* names appear, and the formatter will get the */
382                         /* commas right.] */
383 CCM_LFISSION_FRAG,      /* <l1> contains code from lines: <i2>, <i3>, ... */
384 CCM_LPEEL_2,            /* <l1> had iterations peeled off for better */
385                         /* unrolling and/or parallelization */
386 CCM_LBLOCKED_2,         /* <l1> blocked by <i2> for improved memory */
387                         /* hierarchy performance, new inner loop <l3> */
388 CCM_LOUTER_UNROLL,      /* <l1> is outer-unrolled <i2> times as part */
389                         /* of unroll and jam */
390 CCM_LJAMMED,            /* All <i1> copies of <l2> are fused together */
391                         /* as part of unroll and jam */
392 CCM_LWHILE2DO_2,        /* Bounds test for <l1> moved to top of loop */
393 CCM_L2CALL_2,           /* <l1> replaced by a call to <p2> */
394 CCM_LDEAD_2,            /* <l1> deleted as dead code */
395 CCM_LINTRCHNG_2,        /* <l1> interchanged with <l2> */
396 CCM_LINTRCHNG_ORDER,    /* For loop nest below, the final order of loops */
397                         /* after interchanging and subsequent */
398                         /* transformations is: <l1>, <l2>, ... */
399                         /* [The number of parameters will determine how many */
400                         /* names appear, and the formatter will get the */
401                         /* commas right.] */
402 CCM_FUSED_2,            /* <l1> fused with <l2>, new loop <l3> */
403 CCM_VECINTRNSC_2,       /* <l1> transformed to use calls to vector */
404                         /* intrinsics: <p2>, <p3>, ... */
405 CCM_LSTRIPMINE_2,       /* <l1> strip-mined by <i2>, new inner loop <l3> */
406 CCM_LNEST2LOOPS_2,      /* <l1> collapsed with <l2>, new loop <l3> */
407 CCM_LREVERSE_2,         /* <l1> has had its iteration direction reversed */
408 CCM_IMIX2_B,            /* <l1> has <i2> loads, <i3> stores, */
409                         /* <i4> prefetches, <i5> FPadds, <i6> FPmuls, */
410                         /* <i7> FPdivs, <i8> FPsubs, and <i9> FPsqrts per */
411                         /* iteration */
412 CCM_LUNRFULL_2,         /* <l1> fully unrolled */
413 CCM_ELIM_NOAMORTINST_2, /* <l1> was eliminated as it contains no */
414                         /* non-amortizable instructions */
415 CCM_COMP_DALIGN_2,      /* Performance of <l1> could be improved by */
416                         /* compiling with -dalign */
417 CCM_INTIMIX_2,          /* <l1> has <i2> int-loads, <i3> int-stores, */
418                         /* <i4> alu-ops, <i5> muls, <i6> int-divs and */
419                         /* <i7> shifts per iteration */
420 CCM_OMP_REGION,         /* Source OpenMP region below has tag <r1> */
421 CCM_LMICROVECTORIZE,    /* <l1> is micro-vectorized */
422 CCM_LMULTI_VERSION_2,   /* <l1> multi-versioned for <s2>. */
423                         /* Specialized version is <l3> */
424 CCM_LCLONED,            /* <l1> cloned for <s2>.  Clone is <l3> */
425 CCM_LUNSWITCHED,        /* <l1> is unswitched.  New loops */
426                         /* are <l2> and <l3> */
427 CCM_LRESWITCHED,        /* Loops <l1> and <l2> and their surrounding */
428                         /* conditional code have been merged to */
429                         /* form loop <l3> */
430 CCM_LSKEWBLOCKED,       /* <l1> skew-blocked by <i2> with slope */
431                         /* <i3> for improved memory hierarchy */
432                         /* performance, new inner loop <l4> */
433 CCM_IVSUB,              /* Induction variable substitution performed on <l1> */
434 CCM_ONEITER_REPLACED,   /* <l1> determined to have a trip count of 1; */
435                         /* converted to straight-line code */
436 CCM_IMIX3_B,            /* <l1> has <i2> loads, <i3> stores, */
437                         /* <i4> prefetches, <i5> FPadds, <i6> FPmuls, */
438                         /* <i7> FPmuladds, <i8> FPdivs, and <i9> FPsqrts per */
439                         /* iteration */
440
441   /* Group: Pipelining Messages */
442 CCM_PIPELINE=0x02000,   /* Loop below pipelined */
443 CCM_PIPESTATS,          /* Loop below scheduled with steady-state cycle */
444                         /* count = <i1> */
445 CCM_NOPIPE_CALL,        /* Loop could not be pipelined because it contains */
446                         /* calls */
447 CCM_NOPIPE_INTCC,       /* Loop could not be pipelined because it sets */
448                         /* multiple integer condition codes. */
449 CCM_NOPIPE_MBAR,        /* Loop could not be pipelined because it contains a */
450                         /* memory barrier instruction */
451 CCM_NOPIPE_MNMX,        /* Loop could not be pipelined because it contains */
452                         /* a minimum or a maximum operation */
453 CCM_NOPIPE_U2FLT,       /* Loop could not be pipelined because it contains */
454                         /* an unsigned to float conversion */
455 CCM_NOPIPE_GOT,         /* Loop could not be pipelined because it sets the */
456                         /* Global Offset Table pointer */
457 CCM_NOPIPE_IDIV,        /* Loop could not be pipelined because it contains */
458                         /* an integer divide */
459 CCM_NOPIPE_PRFTCH,      /* Loop could not be pipelined because it contains */
460                         /* a prefetch operation */
461 CCM_NOPIPE_EXIT,        /* Loop could not be pipelined because it contains */
462                         /* an exit operation */
463 CCM_NOPIPE_REG,         /* Loop could not be pipelined because it contains */
464                         /* instructions that set the %gsr or %fsr register */
465 CCM_NOPIPE_UNS,         /* Loop could not be pipelined because it has an */
466                         /* unsigned loop counter */
467 CCM_NOPIPE_UNSUIT,      /* Loop was unsuitable for pipelining */
468 CCM_NOPIPE_INTRINSIC,   /* Loop could not be pipelined because it has an */
469                         /* intrinsic call to <p1> */
470 CCM_NOPIPE_BIG,         /* Loop could not be pipelined as it is too big */
471 CCM_NOPIPE_INVINTPR,    /* Loop could not be pipelined as it contains too */
472                         /* many loop invariant integers = <i1> */
473 CCM_NOPIPE_INVFLTPR,    /* Loop could not be pipelined as it contains too */
474                         /* many loop invariant floats = <i1> */
475 CCM_NOPIPE_INVDBLPR,    /* Loop could not be pipelined as it contains too */
476                         /* many loop invariant doubles = <i1> */
477 CCM_PIPE_SCHEDAFIPR,    /* Loop below was adversely affected by high */
478                         /* integer register pressure = <i1> */
479 CCM_PIPE_SCHEDAFDPR,    /* Loop below was adversely affected by high */
480                         /* double register pressure = <i1> */
481 CCM_PIPE_SCHEDAFFPR,    /* Loop below was adversely affected by high */
482                         /* float register pressure = <i1> */
483 CCM_NOPIPE_INTPR,       /* Loop could not be pipelined due to high */
484                         /* integer register pressure = <i1> */
485 CCM_NOPIPE_DBLPR,       /* Loop could not be pipelined due to high */
486                         /* double register pressure = <i1> */
487 CCM_NOPIPE_FLTPR,       /* Loop could not be pipelined due to high */
488                         /* float register pressure = <i1> */
489 CCM_PIPELINE_2,         /* <l1> pipelined */
490 CCM_PIPESTATS_2,        /* <l1> scheduled with steady-state cycle */
491                         /* count = <i2> */
492 CCM_NOPIPE_CALL_2,      /* <l1> could not be pipelined because it contains */
493                         /* calls */
494 CCM_NOPIPE_INTCC_2,     /* <l1> could not be pipelined because it sets */
495                         /* multiple integer condition codes. */
496 CCM_NOPIPE_MBAR_2,      /* <l1> could not be pipelined because it contains */
497                         /* a memory barrier instruction */
498 CCM_NOPIPE_MNMX_2,      /* <l1> could not be pipelined because it contains */
499                         /* a minimum or a maximum operation */
500 CCM_NOPIPE_U2FLT_2,     /* <l1> could not be pipelined because it contains */
501                         /* an unsigned to float conversion */
502 CCM_NOPIPE_GOT_2,       /* <l1> could not be pipelined because it sets the */
503                         /* Global Offset Table pointer */
504 CCM_NOPIPE_IDIV_2,      /* <l1> could not be pipelined because it contains */
505                         /* an integer divide */
506 CCM_NOPIPE_PRFTCH_2,    /* <l1> could not be pipelined because it contains */
507                         /* a prefetch operation */
508 CCM_NOPIPE_EXIT_2,      /* <l1> could not be pipelined because it contains */
509                         /* an exit operation */
510 CCM_NOPIPE_REG_2,       /* <l1> could not be pipelined because it contains */
511                         /* instructions that set the %gsr or %fsr register */
512 CCM_NOPIPE_UNS_2,       /* <l1> could not be pipelined because it has an */
513                         /* unsigned loop counter */
514 CCM_NOPIPE_UNSUIT_2,    /* <l1> is unsuitable for pipelining */
515 CCM_NOPIPE_INTRINSIC_2, /* <l1> could not be pipelined because it contains */
516                         /* a call to intrinsic <p2> */
517 CCM_NOPIPE_BIG_2,       /* <l1> could not be pipelined as it is too big */
518 CCM_NOPIPE_INVINTPR_2,  /* <l1> could not be pipelined as it contains too */
519                         /* many loop invariant integers = <i2> */
520 CCM_NOPIPE_INVFLTPR_2,  /* <l1> could not be pipelined as it contains too */
521                         /* many loop invariant floats = <i2> */
522 CCM_NOPIPE_INVDBLPR_2,  /* <l1> could not be pipelined as it contains too */
523                         /* many loop invariant doubles = <i2> */
524 CCM_PIPE_SCHEDAFIPR_2,  /* <l1> was adversely affected by high */
525                         /* integer register pressure = <i2> */
526 CCM_PIPE_SCHEDAFDPR_2,  /* <l1> was adversely affected by high */
527                         /* double register pressure = <i2> */
528 CCM_PIPE_SCHEDAFFPR_2,  /* <l1> was adversely affected by high */
529                         /* float register pressure = <i2> */
530 CCM_NOPIPE_INTPR_2,     /* <l1> could not be pipelined due to high */
531                         /* integer register pressure = <i2> */
532 CCM_NOPIPE_DBLPR_2,     /* <l1> could not be pipelined due to high */
533                         /* double register pressure = <i2> */
534 CCM_NOPIPE_FLTPR_2,     /* <l1> could not be pipelined due to high */
535                         /* float register pressure = <i2> */
536
537   /* Group: Inlining Messages */
538 CCM_INLINE=0x04000,     /* Function <p1> inlined from source file <s2> into */
539                         /* the code for the following line */
540 CCM_INLINE2,            /* Function <p1> inlined from source file <s2> into */
541                         /* inline copy of function <p3> */
542 CCM_INLINE_TMPLT,       /* Function <p1> inlined from template file <s2> */
543                         /* into the code for the following line */
544 CCM_INLINE_TMPLT2,      /* Function <p1> inlined from template file <s2> */
545                         /* into inline copy of function <p3> */
546 CCM_INLINE_OUT_COPY,    /* Out-of-line copy of inlined function <p1> from */
547                         /* source file <s2> generated */
548 CCM_NINLINE_REC,        /* Recursive function <p1> inlined only up to */
549                         /* depth <i2> */
550 CCM_NINLINE_NEST,       /* Function <p1> not inlined because inlining is */
551                         /* already nested too deeply */
552 CCM_NINLINE_CMPLX,      /* Function <p1> not inlined because it contains */
553                         /* too many operations */
554 CCM_NINLINE_FB,         /* Function <p1> not inlined because the */
555                         /* profile-feedback execution count is too low */
556 CCM_NINLINE_PAR,        /* Function <p1> not inlined because it contains */
557                         /* explicit parallel pragmas */
558 CCM_NINLINE_OPT,        /* Function <p1> not inlined because it is */
559                         /* compiled with optimization level <= 2 */
560 CCM_NINLINE_USR,        /* Function <p1> not inlined because either command */
561                         /* line option or source code pragma prohibited it, */
562                         /* or it's not safe to inline it */
563 CCM_NINLINE_AUTO,       /* Function <p1> not inlined because doing so */
564                         /* would make automatic storage for <p2> too large */
565 CCM_NINLINE_CALLS,      /* Function <p1> not inlined because it contains */
566                         /* too many calls */
567 CCM_NINLINE_ACTUAL,     /* Function <p1> not inlined because it has more */
568                         /* actual parameters than formal parameters */
569 CCM_NINLINE_FORMAL,     /* Function <p1> not inlined because it has more */
570                         /* formal parameters than actual parameters */
571 CCM_NINLINE_TYPE,       /* Function <p1> not inlined because formal */
572                         /* argument type does not match actual type */
573 CCM_NINLINE_ATYPE,      /* Function <p1> not inlined because array formal */
574                         /* argument does not match reshaped array actual */
575                         /* argument type */
576 CCM_NINLINE_RETTYPE,    /* Function <p1> not inlined because return type */
577                         /* does not match */
578 CCM_NINLINE_EXCPT,      /* Function <p1> not inlined because it */
579                         /* guarded by an exception handler */
580 CCM_NINLINE_UNSAFE,     /* Function <p1> not inlined because it might be */
581                         /* unsafe (call alloca(), etc) */
582 CCM_NINLINE_ALIAS,      /* Function <p1> not inlined because inlining it */
583                         /* will make the alias analysis in the calling */
584                         /* function more conservative */
585 CCM_NINLINE_FEMARK,     /* Function <p1> not inlined because it contains */
586                         /* setjmp/longjmp, or indirect goto, etc */
587 CCM_NINLINE_RAREX,      /* Function <p1> not inlined because it is known */
588                         /* to be rarely executed */
589 CCM_CLONING,            /* Function <p1> from source file <s2> cloned, */
590                         /* creating cloned function <p3>; constant */
591                         /* parameters propagated to clone */
592 CCM_INLINE_B,           /* Function <p1> inlined from source file <s2> into */
593                         /* the code for the following line.  <i3> loops */
594                         /* inlined */
595 CCM_INLINE2_B,          /* Function <p1> inlined from source file <s2> into */
596                         /* inline copy of function <p3>.  <i4> loops inlined */
597 CCM_INLINE_LOOP,        /* Loop in function <p1>, line <i2> has */
598                         /* tag <l3> */
599 CCM_NINLINE_MULTIENTRY, /* Function <p1> not inlined because it */
600                         /* contains an ENTRY statement */
601 CCM_NINLINE_VARARGS,    /* Function <p1> not inlined because variable */
602                         /* argument routines cannot be inlined */
603 CCM_NINLINE_UNSEEN_BODY,        /* Function <p1> not inlined because the compiler */
604                         /* has not seen the body of the function.  Use */
605                         /* -xcrossfile or -xipo in order to inline it */
606 CCM_NINLINE_UPLEVEL,    /* Function <p1> not inlined because it is a */
607                         /* nested routine containing references to */
608                         /* variables defined in an outer function */
609 CCM_NINLINE_CMDLINE,    /* Function <p1> not inlined because either */
610                         /* -xinline or source code pragma prohibited it */
611 CCM_NINLINE_CALL_CMPLX, /* Call to <p1> not inlined because of the */
612                         /* complexity of the calling routine */
613 CCM_NINLINE_LANG_MISMATCH,      /* Call to <p1> not inlined because it is in */
614                         /* a different language */
615 CCM_NINLINE_RTN_WEAK,   /* Function <p1> not inlined because it */
616                         /* is marked weak */
617 CCM_NINLINE_CALL_WEAKFILE,      /* Call to <p1> not inlined because it is */
618                         /* in a different file and it contains a */
619                         /* call to a weak routine */
620 CCM_NINLINE_CALL_TRYCATCH,      /* Call to <p1> not inlined because it is */
621                         /* in a different file and contains an */
622                         /* explicit try/catch */
623 CCM_NINLINE_CALL_REGP,  /* Call to <p1> not inlined because it would */
624                         /* cause excessive register pressure */
625 CCM_NINLINE_RTN_REGP,   /* Function <p1> not inlined because it would */
626                         /* cause excessive register pressure */
627 CCM_NINLINE_CALL_XPENSV,        /* Call to <p1> not inlined because analysis */
628                         /* exceeds the compilation time limit */
629 CCM_NINLINE_READONLYIR, /* Function <p1> not inlined because it is in a file */
630                         /* specified as read-only by -xipo_archive=readonly */
631                         /* and it contains calls to static functions */
632 CCM_NINLINE_CALL_THUNK, /* Call to <p1> not inlined because it is in a */
633                         /* compiler-generated function that does not */
634                         /* permit inlining */
635 CCM_NINLINE_CALL_XTARGETS,      /* Indirect callsite has too many targets; */
636                         /* callsite marked do not inline */
637 CCM_NINLINE_SELFTAIL_RECURSIVE, /* Function <p1> not inlined because */
638                         /* of a recursive tail-call to itself */
639 CCM_NINLINE_PRAGMA,     /* Function <p1> not inlined because it contains */
640                         /* explicit parallel or alias pragmas */
641 CCM_NINLINE_CMPLX2,     /* Function <p1> not inlined because it contains too */
642                         /* many operations.  Increase max_inst_hard in order */
643                         /* to inline it: -xinline_param=max_inst_hard:n */
644 CCM_NINLINE_RARE,       /* Function <p1> not inlined because the call */
645                         /* is rarely executed */
646 CCM_NINLINE_PAR2,       /* Function <p1> not inlined because it is called */
647                         /* within a region guarded by an explicit */
648                         /* parallel pragmas */
649 CCM_NINLINE_G_LIMIT,    /* Function <p1> not inlined because it would exceed */
650                         /* the permitted global code size growth limit.  Try */
651                         /* to increase max_growth in order to inline it: */
652                         /* -xinline_param=max_growth:n */
653 CCM_NINLINE_L_LIMIT,    /* Function <p1> not inlined because it would exceed */
654                         /* the maximum function size growth limit.  Increase */
655                         /* max_function_inst in order to inline it: */
656                         /* -xinline_param=max_function_inst:n */
657 CCM_NINLINE_REC2,       /* Recursive function <p1> is inlined only up to */
658                         /* <i2> levels and up to <i3> size.  Increase */
659                         /* max_recursive_deptha or max_recursive_inst in */
660                         /* order to inline it: */
661                         /* -xinline_param=max_recursive_depth:n, */
662                         /* -xinline_param=max_recursive_inst:n */
663 CCM_NINLINE_FB2,        /* Function <p1> not inlined because the */
664                         /* profile-feedback execution count is too */
665                         /* low.  Decrease min_counter in order to inline it: */
666                         /* -xinline_param:min_counter:n */
667 CCM_NINLINE_CS_CMPLX,   /* Function <p1> not inlined because called */
668                         /* function's size is too big.  Increase */
669                         /* max_inst_soft in order to inline it: */
670                         /* -xinline_param=max_inst_soft:n */
671 CCM_NINLINE_R_EXCPT,    /* Function <p1> not inlined because it contains */
672                         /* an exception handler */
673 CCM_NINLINE_ASM,        /* Function <p1> not inlined because */
674                         /* it contains asm statements */
675 CCM_NINLINE_R_READONLYIR,       /* Function <p1> not inlined because it is in a file */
676                         /* specified as read-only by -xipo_archive=readonly */
677                         /* and it is a static function */
678 CCM_NINLINE_C_READONLYIR,       /* Call to <p1> not inlined because the calling */
679                         /* function is in a file specified as read-only */
680                         /* by -xipo_archive=readonly */
681 CCM_NINLINE_NEVERRETURN,        /* Function <p1> not inlined because it */
682                         /* never returns */
683
684   /* Group: Messages Concerning Memory Operations */
685   /*    Notes: */
686   /*    a.  In all of these, <s1> is a string that is something like */
687   /*    "A(i+5*k)" or "structure.field", giving the high-level */
688   /*    construct that is being loaded or stored. */
689   /*     */
690   /*    b.  In all of these, <x2> refers to an instruction offset, */
691   /*    expressed as a 32-bit signed integer.  It is assumed */
692   /*    that any prefetches will be within this range of the */
693   /*    load/store they are prefetching for. */
694 CCM_MPREFETCH=0x08000,  /* Prefetch of <s1> inserted */
695                         /* [This message has a lineno for the source, */
696                         /* but no instaddr for the disassembly.] */
697 CCM_MPREFETCH_LD,       /* Prefetch of <s1> inserted for load at <x2> */
698                         /* [This message has lineno = -1, */
699                         /* and is for disassembly only] */
700 CCM_MPREFETCH_ST,       /* Prefetch of <s1> inserted for store at <x2> */
701                         /* [This message has lineno = -1, */
702                         /* and is for disassembly only] */
703 CCM_MPREFETCH_FB,       /* Prefetch of <s1> inserted based on feedback data */
704                         /* [This message has a lineno for the source, */
705                         /* but no instaddr for the disassembly.] */
706 CCM_MPREFETCH_FB_LD,    /* Prefetch of <s1> inserted for load at <x2> based */
707                         /* on feedback data */
708                         /* [This message has lineno = -1, */
709                         /* and is for disassembly only] */
710 CCM_MPREFETCH_FB_ST,    /* Prefetch of <s1> inserted for store at <x2> based */
711                         /* on feedback data */
712                         /* [This message has lineno = -1, */
713                         /* and is for disassembly only] */
714 CCM_MLOAD,              /* Load below refers to <s1> */
715                         /* [This message has lineno = -1, */
716                         /* and is for disassembly only] */
717 CCM_MSTORE,             /* Store below refers to <s1> */
718                         /* [This message has lineno = -1, */
719                         /* and is for disassembly only] */
720 CCM_MLOAD_P,            /* Load below refers to <s1>, and was prefetched */
721                         /* at <x2> */
722                         /* [This message has lineno = -1, */
723                         /* and is for disassembly only] */
724 CCM_MSTORE_P,           /* Store below refers to <s1>, and was prefetched */
725                         /* at <x2> */
726                         /* [This message has lineno = -1, */
727                         /* and is for disassembly only] */
728
729   /* Group: Front-end messages [all compilers] */
730   /* Group: F95 Front-end Messages */
731 CCM_COPYIN=0x10000,     /* Parameter <i1> caused a copyin in the following */
732                         /* call */
733 CCM_COPYOUT,            /* Parameter <i1> caused a copyout in the following */
734                         /* call */
735 CCM_COPYINOUT,          /* Parameter <i1> caused both a copyin and copyout */
736                         /* in the following call */
737 CCM_PADDING,            /* Padding of <i1> bytes inserted before */
738                         /* array <v2> */
739 CCM_PADCOMMON,          /* Padding of <i1> bytes inserted before */
740                         /* array <v2> in common block <v3> */
741 CCM_ALIGN_EQ,           /* Variable/array <v1> can not be double-aligned, */
742                         /* because it is equivalenced */
743 CCM_ALIGN_PERF,         /* Alignment of variables in common block may cause */
744                         /* performance degradation */
745 CCM_ALIGN_STRUCT,       /* Alignment of component <s1> in numeric sequence */
746                         /* structure <s2> may cause performance degradation */
747 CCM_TMP_COPY,           /* Argument <v1> copied to a temporary */
748 CCM_TMP_COPYM,          /* Argument <v1> might be copied to a temporary; */
749                         /* runtime decision made */
750 CCM_PROC_MISMATCH,      /* Argument <i1> to subprogram <p2> differs from */
751                         /* reference on line <i3> */
752 CCM_PROC_MISMATCH2,     /* Scalar argument <i1> to subprogram <p2> is */
753                         /* referred to as an array on line <i3> */
754 CCM_PROC_MISMATCH3,     /* Return type/rank from subprogram <p1> differs */
755                         /* from return on line <i2> */
756 CCM_DO_EXPR,            /* DO statement bounds lead to no executions of the */
757                         /* loop */
758 CCM_AUTO_BND,           /* The bounds for automatic variable <v1> are not */
759                         /* available at all entry points; zero-length */
760                         /* variable might be allocated */
761 CCM_LIT_PAD,            /* The character string literal <s1> padded */
762                         /* to the length specified for the dummy argument */
763 CCM_ARRAY_LOOP,         /* Array statement below generated a loop */
764 CCM_ARRAY_LOOPNEST,     /* Array statement below generated <i1> nested loops */
765 CCM_ALIGN_PERF2,        /* Alignment of variable <v1> in common block <v2> */
766                         /* may cause a performance degradation */
767 CCM_ALIGN_PERF3,        /* Alignment of variable <v1> in blank common may */
768                         /* cause a performance degradation */
769 CCM_IO_LOOP_ARRAY,      /* I/O implied do item below generated an array */
770                         /* section */
771
772   /* Group: C++ Front-end Messages */
773 CCM_TMPCONST,           /* Implicit invocation of class <s1> constructor for */
774                         /* temporary */
775 CCM_TMPDEST,            /* Implicit invocation of class <s1> destructor for */
776                         /* temporary */
777 CCM_DBL_CONST,          /* Double constant <s1> used in float expression */
778 CCM_MINLINE,            /* Function <p1> inlined from source file <s2> by */
779                         /* front-end */
780                         /* [This refers to front-end inlining, */
781                         /* not the backend inlining above.] */
782 CCM_MINLINE2,           /* Function <p1> from source file <s2> inlined into */
783                         /* inline copy of method <p3> by front-end */
784                         /* [This refers to front-end inlining, */
785                         /* not the backend inlining above.] */
786 CCM_MINLINE3,           /* Function <p1> not inlined because it uses keyword */
787                         /* <s2> */
788 CCM_MINLINE4,           /* Function <p1> not inlined because it is too */
789                         /* complex */
790 CCM_TMP_COPYOUT,        /* Argument <v1> copied from a temporary */
791 CCM_TMP_COPYOUTM,       /* Argument <v1> might be copied from a temporary; */
792                         /* runtime decision made */
793 CCM_TMP_COPYINOUT,      /* Argument <v1> copied in and out of a temporary */
794 CCM_TMP_COPYINOUTM,     /* Argument <v1> might be copied in and out of */
795                         /* a temporary; runtime decision made */
796
797   /* Group: C Front-end Messages */
798   /* Group: NJC Front-end Messages */
799   /* Group: Updated F95 Front-end Messages */
800 CCM_ARRAY_LOOP_2,       /* Array statement below generated loop <l1> */
801 CCM_ARRAY_LOOPNEST_2,   /* Array statement below generated <i1> nested */
802                         /* loops: <l2>, <l3>, ... */
803                         /* [The number of parameters will determine how many */
804                         /* names appear, and the formatter will get the */
805                         /* commas right.] */
806 CCM_IO_LOOP_ARRAY_2,    /* I/O implied do item below generated an array */
807                         /* section: <l1> */
808 CCM_USER_LOOP,          /* Source loop below has tag <l1> */
809 CCM_FOUND_LOOP,         /* Discovered loop below has tag <l1> */
810 CCM_MFUNCTION_LOOP,     /* Copy in M-function of loop below has tag <l1> */
811
812   /* Group: Code-generator Messages */
813 CCM_FSIMPLE=0x20000,    /* Transformations for fsimple=<i1> applied */
814 CCM_STACK,              /* Function <p1> requires <i2> Mbytes of stack */
815                         /* storage */
816 CCM_TAILRECUR,          /* Recursive tail call in <p1> optimized to jump to */
817                         /* entry point */
818 CCM_TAILCALL,           /* Call to function <p1> was tail-call optimized */
819 CCM_NI_EXIT_OR_PSEUDO,  /* Template could not be early inlined because it */
820                         /* contains the pseudo instruction <s1> */
821 CCM_NI_BAD_UNARY_OPC,   /* Template could not be early inlined because it */
822                         /* contains the instruction opcode <s1> */
823 CCM_NI_INT_LDD_ON_V9,   /* Template could not be early inlined because it */
824                         /* contains integer ldd instructions, which are */
825                         /* deprecated in the v9 architecture */
826 CCM_NI_LATE_INL_OPC,    /* Template could not be early inlined because it */
827                         /* contains the instruction opcode <s1> */
828 CCM_NI_BAD_IMM_OP,      /* Template could not be early inlined because the */
829                         /* relocation or immediate operand <s1> is not well */
830                         /* understood by the optimizer */
831 CCM_NI_BAD_STATELEAF,   /* Template could not be early inlined because it */
832                         /* references the state register <s1> */
833 CCM_NI_BAD_ASR_19,      /* Template could not be early inlined because */
834                         /* %asr19 is not supported in pre v8plus code */
835 CCM_NI_BAD_FSR_USE,     /* Template could not be early inlined because */
836                         /* references to %fsr can only be optimized when the */
837                         /* -iaopts flag is used */
838 CCM_NI_BAD_REGISTER,    /* Template could not be early inlined because it */
839                         /* references the register <s1> */
840 CCM_NI_NO_RET_VAL,      /* Template could not be early inlined because it */
841                         /* does not return the value declared */
842 CCM_NI_DELAY,           /* Template could not be early inlined because it */
843                         /* contains a non nop delay slot */
844 CCM_NI_SCALL,           /* Template could not be early inlined because it */
845                         /* calls a function which returns a structure */
846 CCM_CASE_POSITION,      /* Case block below was placed at position <i1> */
847                         /* based on execution frequency */
848 CCM_CALL_WITH_CODE,     /* Call to <p1> replaced with inline code.  <i2> */
849                         /* loops created: <l3>, <l4>, ... */
850 CCM_NI_BAD_SP_ADDR,     /* Template could not be early inlined because it */
851                         /* contains a %sp+reg address */
852 CCM_NI_BAD_SP_USAGE,    /* Template could not be early inlined because it */
853                         /* uses/defines the stack pointer in a non-load/store instruction */
854 CCM_NI_MIXED_REG_TYPES, /* Template could not be early inlined because it */
855                         /* contains register <s1> used as both x-register and register pair */
856 CCM_LAST
857 } COMPMSG_ID;
858 /*
859  * The Message Structure
860  * Each message is a fixed-length structure as follows:
861  */
862 typedef struct
863 {
864   int64_t instaddr;     /* the PC offset, relative to the .o .text section */
865   int32_t lineno;       /* the source line to which it refers */
866   COMPMSG_ID msg_type;  /* the specific message index */
867   int32_t nparam;       /* number of parameters to this message */
868   int32_t param_index;  /* the index of the first parameter */
869 } compmsg;
870
871 #if defined(__cplusplus)
872 extern "C"
873 {
874 #endif
875   /*
876    * Initializes the data structures, converts the source name to a string,
877    * and fills in srcname and version in the header
878    */
879   void compcom_p_open (char *srcname, int32_t version);
880
881   /*
882    * Finds or enters the string s into the string table, and returns the index
883    * of the string
884    */
885   int32_t compcom_p_string (char *s);
886
887   /*
888    * Enter the single message.  Any string parameters should have been converted
889    * to int32's by calling compcom_p_string()
890    */
891   void compcom_p_putmsg (int32_t show_bits, int64_t pcoffset, int32_t lineno,
892                          COMPMSG_ID m, int32_t nparams);
893
894   /*
895    * Whatever is needed to close the section and write it out to the .o
896    */
897   void compcom_p_finalize ();
898
899 #if defined(__cplusplus)
900 }
901 #endif
902
903 #endif /* _COMP_COM_H */
This page took 0.12042 seconds and 4 git commands to generate.