| /* Copyright (C) 2021-2025 Free Software Foundation, Inc. | |
| Contributed by Oracle. | |
| This file is part of GNU Binutils. | |
| This program is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; either version 3, or (at your option) | |
| any later version. | |
| This program is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with this program; if not, write to the Free Software | |
| Foundation, 51 Franklin Street - Fifth Floor, Boston, | |
| MA 02110-1301, USA. */ | |
| #include <stdio.h> | |
| #include <string.h> | |
| #include <stdlib.h> | |
| #include <locale.h> | |
| #include <values.h> | |
| #include <assert.h> | |
| #include "libiberty.h" | |
| #include "comp_com.h" | |
| /* | |
| * To add a new message _FORMAT_ please perform the following tasks: | |
| * 1) Insert it into the list below, with the matching comment. | |
| * The table is sorted by parameter type. In increasing order | |
| * they are: String, Procedure, Variable, Loop, Region, Integer. | |
| * 2) Insert the corresponding information into the following | |
| * procedures in this file: ccm_num_params(), ccm_paramlist_index(), | |
| * ccm_param_primtype(), and ccm_param_hightype(). | |
| * 3) If you are also creating a new high-type or primitive-type, | |
| * extend the corresponding enum, update this comment and make sure | |
| * to update any code in the analyzer, iropt, cg or ube that depends | |
| * on knowing the limited set of types. | |
| */ | |
| typedef enum ccm_fmt { | |
| CCMFMT_NONE, /* none */ | |
| CCMFMT_S1, /* s1 */ | |
| CCMFMT_S1S2, /* s1, s2 */ | |
| CCMFMT_S1L2, /* s1, l2 */ | |
| CCMFMT_S1L2VV3, /* s1, l2, v3, v4, ... */ | |
| CCMFMT_S1R2VV3, /* s1, r2, v3, v4, ... */ | |
| CCMFMT_S1X2, /* s1, x2 */ | |
| CCMFMT_P1, /* p1 */ | |
| CCMFMT_P1S2, /* p1, s2 */ | |
| CCMFMT_P1S2P3, /* p1, s2, p3 */ | |
| CCMFMT_P1S2P3I4, /* p1, s2, p3, i4 */ | |
| CCMFMT_P1S2I3, /* p1, s2, i3 */ | |
| CCMFMT_P1P2, /* p1, p2 */ | |
| CCMFMT_P1L2, /* p1, l2 */ | |
| CCMFMT_P1I2, /* p1, i2 */ | |
| CCMFMT_P1I2L3, /* p1, i2, l3 */ | |
| CCMFMT_P1I2LL3, /* p1, i2, l3, l4 ... */ | |
| CCMFMT_P1I2I3, /* p1, i2, i3 */ | |
| CCMFMT_PP1, /* p1, p2, ... */ | |
| CCMFMT_V1, /* v1 */ | |
| CCMFMT_V1V2, /* v1, v2 */ | |
| CCMFMT_V1L2, /* v1, l2 */ | |
| CCMFMT_VV1, /* v1, v2, ... */ | |
| CCMFMT_L1, /* l1 */ | |
| CCMFMT_L1S2, /* l1, s2 */ | |
| CCMFMT_L1S2L3, /* l1, s2, l3 */ | |
| CCMFMT_L1P2, /* l1, p2 */ | |
| CCMFMT_L1P2I3, /* l1, p2, i3 */ | |
| CCMFMT_L1PP2, /* l1, p2, p3, ... */ | |
| CCMFMT_L1VV2, /* l1, v2, v3, ... */ | |
| CCMFMT_L1L2, /* l1, l2 */ | |
| CCMFMT_L1L2L3, /* l1, l2, l3 */ | |
| CCMFMT_LL1, /* l1, l2, ... */ | |
| CCMFMT_L1R2, /* l1, r2 */ | |
| CCMFMT_L1I2, /* l1, i2 */ | |
| CCMFMT_L1I2L3, /* l1, i2, l3 */ | |
| CCMFMT_L1I2LL3, /* l1, i2, l3, l4, ... */ | |
| CCMFMT_L1I2I3L4, /* l1, i2, i3, l4 */ | |
| CCMFMT_L1I2I3I4I5, /* l1, i2, ..., i5 */ | |
| CCMFMT_L1I2I3I4I5I6I7, /* l1, i2, ..., i7 */ | |
| CCMFMT_L1I2I3I4I5I6I7I8I9, /* l1, i2, ..., i9 */ | |
| CCMFMT_L1II2, /* l1, i2, i3, ... */ | |
| CCMFMT_R1, /* r1 */ | |
| CCMFMT_R1VV2, /* r1, v2, v3, ... */ | |
| CCMFMT_I1, /* i1 */ | |
| CCMFMT_I1P2I3, /* i1, p2, i3 */ | |
| CCMFMT_I1V2, /* i1, v2 */ | |
| CCMFMT_I1V2V3, /* i1, v2, v3 */ | |
| CCMFMT_I1L2, /* i1, l2 */ | |
| CCMFMT_I1LL2, /* i1, l2, l3, ... */ | |
| CCMFMT_I1I2I3I4, /* i1, i2, i3, i4 */ | |
| CCMFMT_I1I2I3I4I5I6, /* i1, i2, ..., i6 */ | |
| CCMFMT_I1I2I3I4I5I6I7I8, /* i1, i2, ..., i8 */ | |
| CCMFMT_LAST | |
| } Ccm_Fmttype_t; | |
| /* | |
| * Low- and high-level types for commentary parameters. | |
| */ | |
| typedef enum ccm_primtype | |
| { | |
| CCM_PRIMTYPE_NONE, | |
| CCM_PRIMTYPE_STRING, | |
| CCM_PRIMTYPE_INTEGER, | |
| CCM_PRIMTYPE_HEXSTRING | |
| } Ccm_Primtype_t; | |
| typedef enum ccm_hightype | |
| { | |
| CCM_HITYPE_NONE, | |
| CCM_HITYPE_STRING, | |
| CCM_HITYPE_PROCEDURE, | |
| CCM_HITYPE_VARIABLE, | |
| CCM_HITYPE_LOOPTAG, | |
| CCM_HITYPE_REGIONTAG, | |
| CCM_HITYPE_HEXSTRING, | |
| CCM_HITYPE_INTEGER | |
| } Ccm_Hitype_t; | |
| typedef struct ccm_attrs | |
| { | |
| char *msg; /* I18N msg string */ | |
| const char *name; /* Print name for this message ID */ | |
| int32_t vis; /* Visibility bits */ | |
| Ccm_Fmttype_t fmt; /* Format type */ | |
| } Ccm_Attr_t; | |
| static Ccm_Attr_t *ccm_attrs; /* Table of per-msg attributes */ | |
| static nl_catd ccm_catd = (nl_catd) - 1; /* messages id */ | |
| /* | |
| * map COMPMSG_ID to table indices | |
| */ | |
| static int | |
| ccm_vis_index (COMPMSG_ID m) | |
| { | |
| int32_t high = m >> 8; | |
| int32_t low = m & 0xFF; | |
| for (int i = 0; i < 24; i++, high >>= 1) | |
| if (high <= 1) | |
| return (i << 8) + low + 1; | |
| return 0; | |
| } | |
| /* | |
| * Return # parameters for this message; MAXINT for messages with | |
| * parameter lists. | |
| */ | |
| static int | |
| ccm_num_params (COMPMSG_ID m) | |
| { | |
| int vindex; | |
| int res; | |
| vindex = ccm_vis_index (m); | |
| switch (ccm_attrs[vindex].fmt) | |
| { | |
| case CCMFMT_NONE: | |
| res = 0; | |
| break; | |
| case CCMFMT_S1: | |
| case CCMFMT_P1: | |
| case CCMFMT_V1: | |
| case CCMFMT_L1: | |
| case CCMFMT_R1: | |
| case CCMFMT_I1: | |
| res = 1; | |
| break; | |
| case CCMFMT_S1S2: | |
| case CCMFMT_S1L2: | |
| case CCMFMT_S1X2: | |
| case CCMFMT_P1S2: | |
| case CCMFMT_P1P2: | |
| case CCMFMT_P1L2: | |
| case CCMFMT_P1I2: | |
| case CCMFMT_V1V2: | |
| case CCMFMT_V1L2: | |
| case CCMFMT_L1S2: | |
| case CCMFMT_L1P2: | |
| case CCMFMT_L1L2: | |
| case CCMFMT_L1R2: | |
| case CCMFMT_L1I2: | |
| case CCMFMT_I1V2: | |
| case CCMFMT_I1L2: | |
| res = 2; | |
| break; | |
| case CCMFMT_P1S2P3: | |
| case CCMFMT_P1S2I3: | |
| case CCMFMT_P1I2L3: | |
| case CCMFMT_P1I2I3: | |
| case CCMFMT_L1S2L3: | |
| case CCMFMT_L1P2I3: | |
| case CCMFMT_L1L2L3: | |
| case CCMFMT_L1I2L3: | |
| case CCMFMT_I1P2I3: | |
| case CCMFMT_I1V2V3: | |
| res = 3; | |
| break; | |
| case CCMFMT_P1S2P3I4: | |
| case CCMFMT_L1I2I3L4: | |
| case CCMFMT_I1I2I3I4: | |
| res = 4; | |
| break; | |
| case CCMFMT_L1I2I3I4I5: | |
| res = 5; | |
| break; | |
| case CCMFMT_I1I2I3I4I5I6: | |
| res = 6; | |
| break; | |
| case CCMFMT_L1I2I3I4I5I6I7: | |
| res = 7; | |
| break; | |
| case CCMFMT_I1I2I3I4I5I6I7I8: | |
| res = 8; | |
| break; | |
| case CCMFMT_L1I2I3I4I5I6I7I8I9: | |
| res = 9; | |
| break; | |
| case CCMFMT_S1L2VV3: | |
| case CCMFMT_S1R2VV3: | |
| case CCMFMT_PP1: | |
| case CCMFMT_P1I2LL3: | |
| case CCMFMT_VV1: | |
| case CCMFMT_L1PP2: | |
| case CCMFMT_L1VV2: | |
| case CCMFMT_LL1: | |
| case CCMFMT_L1I2LL3: | |
| case CCMFMT_L1II2: | |
| case CCMFMT_R1VV2: | |
| case CCMFMT_I1LL2: | |
| res = MAXINT; | |
| break; | |
| case CCMFMT_LAST: | |
| default: | |
| /* programming failure */ | |
| /* if(1) is hack to get around warning from C++ compiler */ | |
| if (1) assert (0); | |
| break; | |
| } | |
| return res; | |
| } | |
| static int | |
| ccm_paramlist_index (COMPMSG_ID m) | |
| { | |
| int res; | |
| int vindex = ccm_vis_index (m); | |
| switch (ccm_attrs[vindex].fmt) | |
| { | |
| case CCMFMT_NONE: | |
| case CCMFMT_S1: | |
| case CCMFMT_S1S2: | |
| case CCMFMT_S1L2: | |
| case CCMFMT_S1X2: | |
| case CCMFMT_P1: | |
| case CCMFMT_P1S2: | |
| case CCMFMT_P1S2P3: | |
| case CCMFMT_P1S2P3I4: | |
| case CCMFMT_P1S2I3: | |
| case CCMFMT_P1P2: | |
| case CCMFMT_P1L2: | |
| case CCMFMT_P1I2: | |
| case CCMFMT_P1I2L3: | |
| case CCMFMT_P1I2I3: | |
| case CCMFMT_V1: | |
| case CCMFMT_V1V2: | |
| case CCMFMT_V1L2: | |
| case CCMFMT_L1: | |
| case CCMFMT_L1S2: | |
| case CCMFMT_L1S2L3: | |
| case CCMFMT_L1P2: | |
| case CCMFMT_L1P2I3: | |
| case CCMFMT_L1L2: | |
| case CCMFMT_L1L2L3: | |
| case CCMFMT_L1R2: | |
| case CCMFMT_L1I2: | |
| case CCMFMT_L1I2L3: | |
| case CCMFMT_L1I2I3L4: | |
| case CCMFMT_L1I2I3I4I5: | |
| case CCMFMT_L1I2I3I4I5I6I7: | |
| case CCMFMT_L1I2I3I4I5I6I7I8I9: | |
| case CCMFMT_R1: | |
| case CCMFMT_I1: | |
| case CCMFMT_I1P2I3: | |
| case CCMFMT_I1V2: | |
| case CCMFMT_I1V2V3: | |
| case CCMFMT_I1L2: | |
| case CCMFMT_I1I2I3I4: | |
| case CCMFMT_I1I2I3I4I5I6: | |
| case CCMFMT_I1I2I3I4I5I6I7I8: | |
| res = 0; | |
| break; | |
| case CCMFMT_PP1: | |
| case CCMFMT_VV1: | |
| case CCMFMT_LL1: | |
| res = 1; | |
| break; | |
| case CCMFMT_L1PP2: | |
| case CCMFMT_L1VV2: | |
| case CCMFMT_L1II2: | |
| case CCMFMT_R1VV2: | |
| case CCMFMT_I1LL2: | |
| res = 2; | |
| break; | |
| case CCMFMT_S1L2VV3: | |
| case CCMFMT_S1R2VV3: | |
| case CCMFMT_P1I2LL3: | |
| case CCMFMT_L1I2LL3: | |
| res = 3; | |
| break; | |
| case CCMFMT_LAST: | |
| default: | |
| /* programming failure */ | |
| /* if(1) is hack to get around warning from C++ compiler */ | |
| if (1) assert (0); | |
| break; | |
| } | |
| return res; | |
| } | |
| static Ccm_Primtype_t | |
| ccm_param_primtype (COMPMSG_ID m, int param_idx) | |
| { | |
| int vindex; | |
| Ccm_Primtype_t res; | |
| if (param_idx <= 0 || param_idx > ccm_num_params (m)) | |
| return CCM_PRIMTYPE_NONE; | |
| res = CCM_PRIMTYPE_NONE; /* should always be updated */ | |
| vindex = ccm_vis_index (m); | |
| switch (ccm_attrs[vindex].fmt) | |
| { | |
| /* | |
| * Sort cases by: | |
| * 1) # parameters | |
| * 2) Strings before Integers | |
| * 3) Enum tags | |
| */ | |
| case CCMFMT_NONE: | |
| /* programming failure */ | |
| /* if(1) is hack to get around warning from C++ compiler */ | |
| if (1) | |
| assert (0); | |
| break; | |
| case CCMFMT_S1: | |
| case CCMFMT_P1: | |
| case CCMFMT_V1: | |
| case CCMFMT_L1: | |
| case CCMFMT_R1: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_I1: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_S1S2: | |
| case CCMFMT_S1L2: | |
| case CCMFMT_P1S2: | |
| case CCMFMT_P1P2: | |
| case CCMFMT_P1L2: | |
| case CCMFMT_V1V2: | |
| case CCMFMT_V1L2: | |
| case CCMFMT_L1S2: | |
| case CCMFMT_L1P2: | |
| case CCMFMT_L1L2: | |
| case CCMFMT_L1R2: | |
| if (param_idx == 1 || param_idx == 2) | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_S1X2: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx == 2) | |
| res = CCM_PRIMTYPE_HEXSTRING; | |
| break; | |
| case CCMFMT_P1I2: | |
| case CCMFMT_L1I2: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx == 2) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1V2: | |
| case CCMFMT_I1L2: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| else if (param_idx == 2) | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_P1S2P3: | |
| case CCMFMT_L1S2L3: | |
| case CCMFMT_L1L2L3: | |
| if (param_idx >= 1 && param_idx <= 3) | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_P1S2I3: | |
| case CCMFMT_L1P2I3: | |
| if (param_idx == 1 || param_idx == 2) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx == 3) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_P1I2L3: | |
| case CCMFMT_L1I2L3: | |
| if (param_idx == 1 || param_idx == 3) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx == 2) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_P1I2I3: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx == 2 || param_idx == 3) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1V2V3: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| else if (param_idx == 2 || param_idx == 3) | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_I1P2I3: | |
| if (param_idx == 1 || param_idx == 3) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| else if (param_idx == 2) | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_L1I2I3L4: | |
| if (param_idx == 1 || param_idx == 4) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx == 2 || param_idx == 3) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_P1S2P3I4: | |
| if (param_idx >= 1 && param_idx <= 3) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx == 4) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1I2I3I4: | |
| if (param_idx >= 1 && param_idx <= 4) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2I3I4I5: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx >= 2 && param_idx <= 5) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1I2I3I4I5I6: | |
| if (param_idx >= 1 && param_idx <= 6) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2I3I4I5I6I7: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx >= 2 && param_idx <= 7) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1I2I3I4I5I6I7I8: | |
| if (param_idx >= 1 && param_idx <= 8) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2I3I4I5I6I7I8I9: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| else if (param_idx >= 2 && param_idx <= 9) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_S1L2VV3: | |
| case CCMFMT_S1R2VV3: | |
| case CCMFMT_PP1: | |
| case CCMFMT_VV1: | |
| case CCMFMT_L1PP2: | |
| case CCMFMT_L1VV2: | |
| case CCMFMT_LL1: | |
| case CCMFMT_R1VV2: | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_P1I2LL3: | |
| case CCMFMT_L1I2LL3: | |
| if (param_idx == 2) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| else | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_L1II2: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_STRING; | |
| else | |
| res = CCM_PRIMTYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1LL2: | |
| if (param_idx == 1) | |
| res = CCM_PRIMTYPE_INTEGER; | |
| else | |
| res = CCM_PRIMTYPE_STRING; | |
| break; | |
| case CCMFMT_LAST: | |
| default: | |
| /* programming failure */ | |
| /* if(1) is hack to get around warning from C++ compiler */ | |
| if (1) | |
| assert (0); | |
| break; | |
| } | |
| return res; | |
| } | |
| static Ccm_Hitype_t | |
| ccm_param_hightype (COMPMSG_ID m, int param_idx) | |
| { | |
| int vindex; | |
| Ccm_Hitype_t res; | |
| if (param_idx <= 0 || param_idx > ccm_num_params (m)) | |
| return CCM_HITYPE_NONE; | |
| res = CCM_HITYPE_NONE; /* should always be updated */ | |
| vindex = ccm_vis_index (m); | |
| switch (ccm_attrs[vindex].fmt) | |
| { | |
| case CCMFMT_NONE: | |
| /* programming failure */ | |
| /* if(1) is hack to get around warning from C++ compiler */ | |
| if (1) | |
| assert (0); | |
| break; | |
| case CCMFMT_S1: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_STRING; | |
| break; | |
| case CCMFMT_S1S2: | |
| if (param_idx == 1 || param_idx == 2) | |
| res = CCM_HITYPE_STRING; | |
| break; | |
| case CCMFMT_S1L2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_STRING; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_S1L2VV3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_STRING; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else | |
| res = CCM_HITYPE_STRING; | |
| break; | |
| case CCMFMT_S1R2VV3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_STRING; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_REGIONTAG; | |
| else | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_S1X2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_STRING; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_HEXSTRING; | |
| break; | |
| case CCMFMT_P1: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| break; | |
| case CCMFMT_P1S2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_STRING; | |
| break; | |
| case CCMFMT_P1S2P3: | |
| if (param_idx == 1 || param_idx == 3) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_STRING; | |
| break; | |
| case CCMFMT_P1S2P3I4: | |
| if (param_idx == 1 || param_idx == 3) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_STRING; | |
| else if (param_idx == 4) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_P1S2I3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_STRING; | |
| else if (param_idx == 3) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_P1P2: | |
| if (param_idx == 1 || param_idx == 2) | |
| res = CCM_HITYPE_PROCEDURE; | |
| break; | |
| case CCMFMT_P1L2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_P1I2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_P1I2L3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_INTEGER; | |
| else if (param_idx == 3) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_P1I2I3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2 || param_idx == 3) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_P1I2LL3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_INTEGER; | |
| else | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_PP1: | |
| res = CCM_HITYPE_PROCEDURE; | |
| break; | |
| case CCMFMT_V1: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_V1V2: | |
| if (param_idx == 1 || param_idx == 2) | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_V1L2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_VARIABLE; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_VV1: | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_L1: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_L1S2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_STRING; | |
| break; | |
| case CCMFMT_L1S2L3: | |
| if (param_idx == 1 || param_idx == 3) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_STRING; | |
| break; | |
| case CCMFMT_L1P2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_PROCEDURE; | |
| break; | |
| case CCMFMT_L1P2I3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_PROCEDURE; | |
| else if (param_idx == 3) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1PP2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else | |
| res = CCM_HITYPE_PROCEDURE; | |
| break; | |
| case CCMFMT_L1VV2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_L1L2: | |
| if (param_idx == 1 || param_idx == 2) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_L1L2L3: | |
| if (param_idx >= 1 && param_idx <= 3) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_LL1: | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_L1R2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_REGIONTAG; | |
| break; | |
| case CCMFMT_L1I2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2L3: | |
| if (param_idx == 1 || param_idx == 3) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2LL3: | |
| if (param_idx == 2) | |
| res = CCM_HITYPE_INTEGER; | |
| else | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_L1I2I3L4: | |
| if (param_idx == 1 || param_idx == 4) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx == 2 || param_idx == 3) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2I3I4I5: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx >= 2 && param_idx <= 5) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2I3I4I5I6I7: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx >= 2 && param_idx <= 7) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1I2I3I4I5I6I7I8I9: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else if (param_idx >= 2 && param_idx <= 9) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_L1II2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_LOOPTAG; | |
| else | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_R1: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_REGIONTAG; | |
| break; | |
| case CCMFMT_R1VV2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_REGIONTAG; | |
| else | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_I1: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1P2I3: | |
| if (param_idx == 1 || param_idx == 3) | |
| res = CCM_HITYPE_INTEGER; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_PROCEDURE; | |
| break; | |
| case CCMFMT_I1V2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_INTEGER; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_I1V2V3: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_INTEGER; | |
| else if (param_idx == 2 || param_idx == 3) | |
| res = CCM_HITYPE_VARIABLE; | |
| break; | |
| case CCMFMT_I1L2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_INTEGER; | |
| else if (param_idx == 2) | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_I1LL2: | |
| if (param_idx == 1) | |
| res = CCM_HITYPE_INTEGER; | |
| else | |
| res = CCM_HITYPE_LOOPTAG; | |
| break; | |
| case CCMFMT_I1I2I3I4: | |
| if (param_idx >= 1 && param_idx <= 4) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1I2I3I4I5I6: | |
| if (param_idx >= 1 && param_idx <= 6) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_I1I2I3I4I5I6I7I8: | |
| if (param_idx >= 1 && param_idx <= 8) | |
| res = CCM_HITYPE_INTEGER; | |
| break; | |
| case CCMFMT_LAST: | |
| default: | |
| /* programming failure */ | |
| /* if(1) is hack to get around warning from C++ compiler */ | |
| if (1) | |
| assert (0); | |
| break; | |
| } | |
| return res; | |
| } | |
| static void | |
| ccm_vis_init () | |
| { | |
| int size, vindex; | |
| static int done = 0; | |
| if (done) | |
| return; | |
| done = 1; | |
| size = ccm_vis_index ((COMPMSG_ID) (CCMV_BASIC << 8)); | |
| ccm_attrs = (Ccm_Attr_t *) xcalloc (size, sizeof (Ccm_Attr_t)); | |
| vindex = ccm_vis_index (CCM_MODDATE); | |
| ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MODDATE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Source file %s, last modified on date %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1S2; | |
| vindex = ccm_vis_index (CCM_COMPVER); | |
| ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_COMPVER"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Component %s, version %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1S2; | |
| vindex = ccm_vis_index (CCM_COMPDATE); | |
| ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_COMPDATE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Compilation date %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_COMPOPT); | |
| ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_COMPOPT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Compilation options %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_ACOMPOPT); | |
| ccm_attrs[vindex].vis = CCMV_VER | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_ACOMPOPT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Actual Compilation options %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_VAR_ALIAS); | |
| ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_VAR_ALIAS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variable %s aliased to %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1V2; | |
| vindex = ccm_vis_index (CCM_FBIRDIFF); | |
| ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_FBIRDIFF"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Profile feedback data inconsistent with" | |
| " intermediate representation file; check compiler" | |
| " version, flags and source file"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_OPTRED_SWAP); | |
| ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_OPTRED_SWAP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Optimization level for %s reduced from %d to" | |
| " %d due to insufficient swap space"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2I3; | |
| vindex = ccm_vis_index (CCM_OPTRED_CPLX); | |
| ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_OPTRED_CPLX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Optimization level for %s reduced from %d to" | |
| " %d due to program complexity"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2I3; | |
| vindex = ccm_vis_index (CCM_UNKNOWN); | |
| ccm_attrs[vindex].vis = CCMV_WARN | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNKNOWN"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Unexpected compiler comment %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_UNPAR_CALL); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_CALL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because it contains a" | |
| " call to %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_PAR_SER); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PAR_SER"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Both serial and parallel versions generated for" | |
| " loop below"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_PAR_SER_VER); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PAR_SER_VER"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Both serial and parallel versions generated for" | |
| " loop below; with parallel version used if %s," | |
| " serial otherwise"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_PAR_DRECTV); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PAR_DRECTV"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below parallelized by explicit user" | |
| " directive"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_APAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_APAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below autoparallelized"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_AUTOPAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_AUTOPAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below autoparallelized; equivalent" | |
| " explict directive is %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_UNPAR_DD); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_DD"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below could not be parallelized because of a" | |
| " data dependency on %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_UNPAR_DDA); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_DDA"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below could not be parallelized because of a" | |
| " data dependency or aliasing of %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_UNPAR_ANONDD); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_ANONDD"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below could not be parallelized because of" | |
| " an anonymous data dependency"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_ANONDDA); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_ANONDDA"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below could not be parallelized because of" | |
| " an anonymous data dependency or aliasing"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_PAR_WORK); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PAR_WORK"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below parallelized, but might not contain" | |
| " enough work to be efficiently run in parallel"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_EXIT); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_EXIT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because it contains" | |
| " multiple exit points"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_STRNG); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_STRNG"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because it contains a" | |
| " strange flow of control"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_IO); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_IO"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because it contains" | |
| " I/O or other MT-unsafe calls"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_PAR_BODY_NAME); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PAR_BODY_NAME"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Parallel loop-body code is in function %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_UNPAR_NLOOPIDX); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NLOOPIDX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because loop index" | |
| " not found"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_DRECTV); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_DRECTV"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because of explicit" | |
| " user directive"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_NOTPROFIT); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NOTPROFIT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because it was not" | |
| " profitable to do so"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_NEST); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NEST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because it was" | |
| " nested in a parallel loop"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_NOAUTO); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NOAUTO"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because" | |
| " autoparallelization is not enabled"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_PR_L_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PR_L_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Private variables in loop below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_SH_L_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_SH_L_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Shared variables in loop below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_TP_L_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_TP_L_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Threadprivate variables in loop below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_RV_L_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_RV_L_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Reduction variables in loop below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_IM_L_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_IM_L_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Implicit variables in loop below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_PR_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PR_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Private variables in OpenMP construct below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_SH_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_SH_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Shared variables in OpenMP construct below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_TP_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_TP_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Threadprivate variables in OpenMP construct" | |
| " below: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_RV_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_RV_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Reduction variables in OpenMP construct below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_IM_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_IM_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Implicit variables in OpenMP construct below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_UNPAR_IN_OMP); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_IN_OMP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below not parallelized because it is inside" | |
| " an OpenMP region"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_FP_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_FP_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Firstprivate variables in OpenMP construct below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_LP_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LP_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Lastprivate variables in OpenMP construct below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_CP_O_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_CP_O_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Copyprivate variables in OpenMP construct below:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_PR_OAS_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PR_OAS_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as PRIVATE in OpenMP" | |
| " construct below: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_SH_OAS_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_SH_OAS_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as SHARED in OpenMP" | |
| " construct below: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_FP_OAS_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_FP_OAS_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as FIRSTPRIVATE in OpenMP" | |
| " construct below: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_LP_OAS_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LP_OAS_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as LASTPRIVATE in OpenMP" | |
| " construct below: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_RV_OAS_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_RV_OAS_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as REDUCTION in OpenMP" | |
| " construct below: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_FAIL_OAS_VAR); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_FAIL_OAS_VAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables cannot be autoscoped in OpenMP" | |
| " construct below: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_VV1; | |
| vindex = ccm_vis_index (CCM_SERIALIZE_OAS); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_SERIALIZE_OAS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "OpenMP parallel region below is serialized" | |
| " because autoscoping has failed"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_UNPAR_CALL_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_CALL_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because it contains calls" | |
| " to: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1PP2; | |
| vindex = ccm_vis_index (CCM_PAR_DRECTV_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PAR_DRECTV_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s parallelized by explicit user directive"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_APAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_APAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s autoparallelized"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_AUTOPAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_AUTOPAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s autoparallelized; equivalent" | |
| " explict directive is %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1S2; | |
| vindex = ccm_vis_index (CCM_UNPAR_DD_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_DD_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be parallelized because of" | |
| " data dependences on: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1VV2; | |
| vindex = ccm_vis_index (CCM_UNPAR_DDA_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_DDA_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be parallelized because of a" | |
| " data dependence or aliasing of: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1VV2; | |
| vindex = ccm_vis_index (CCM_UNPAR_ANONDD_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_ANONDD_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be parallelized because of an" | |
| " anonymous data dependence"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_ANONDDA_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_ANONDDA_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be parallelized because of an" | |
| " anonymous data dependence or aliasing"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_PAR_WORK_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PAR_WORK_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s parallelized, but might not contain" | |
| " enough work to run efficiently in parallel"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_EXIT_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_EXIT_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because it contains" | |
| " multiple exit points"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_STRANGE_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_STRANGE_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because it contains a" | |
| " strange flow of control"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_IO_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_IO_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because it contains" | |
| " I/O or other MT-unsafe calls"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_PAR_BODY_NAME_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP; | |
| ccm_attrs[vindex].name = "CCM_PAR_BODY_NAME_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s parallel loop-body code placed in" | |
| " function %s along with %d inner loops"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1P2I3; | |
| vindex = ccm_vis_index (CCM_UNPAR_NLOOPIDX_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NLOOPIDX_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because loop index not" | |
| " found"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_DRECTV_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_DRECTV_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because of explicit" | |
| " user directive"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_NOTPROFIT_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NOTPROFIT_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because it was not" | |
| " profitable to do so"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_NEST_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NEST_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because it was" | |
| " nested within a parallel loop"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_UNPAR_NOAUTO_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_NOAUTO_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because" | |
| " autoparallelization is not enabled"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_PR_L_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PR_L_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Private variables in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1VV2; | |
| vindex = ccm_vis_index (CCM_SH_L_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_SH_L_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Shared variables in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1VV2; | |
| vindex = ccm_vis_index (CCM_TP_L_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_TP_L_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Threadprivate variables in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1VV2; | |
| vindex = ccm_vis_index (CCM_RV_L_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_RV_L_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Reduction variables of operator %s in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1L2VV3; | |
| vindex = ccm_vis_index (CCM_IM_L_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_IM_L_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Implicit variables in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1VV2; | |
| vindex = ccm_vis_index (CCM_PR_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PR_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Private variables in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_SH_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_SH_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Shared variables in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_TP_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_TP_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Threadprivate variables in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_RV_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_RV_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Reduction variables of operator %s in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1R2VV3; | |
| vindex = ccm_vis_index (CCM_IM_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_IM_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Implicit variables in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_UNPAR_IN_OMP_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNPAR_IN_OMP_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s not parallelized because it is inside" | |
| " OpenMP region %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1R2; | |
| vindex = ccm_vis_index (CCM_FP_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_FP_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Firstprivate variables in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_LP_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LP_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Lastprivate variables in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_CP_O_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_CP_O_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Copyprivate variables in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_PR_OAS_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PR_OAS_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as PRIVATE in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_SH_OAS_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_SH_OAS_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as SHARED in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_FP_OAS_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_FP_OAS_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as FIRSTPRIVATE in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_LP_OAS_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LP_OAS_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as LASTPRIVATE in %s:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_RV_OAS_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_RV_OAS_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables autoscoped as REDUCTION of operator" | |
| " %s in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1R2VV3; | |
| vindex = ccm_vis_index (CCM_FAIL_OAS_VAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN; | |
| ccm_attrs[vindex].name = "CCM_FAIL_OAS_VAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variables treated as shared because they cannot" | |
| " be autoscoped in %s: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1VV2; | |
| vindex = ccm_vis_index (CCM_SERIALIZE_OAS_2); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC | CCMV_WARN; | |
| ccm_attrs[vindex].name = "CCM_SERIALIZE_OAS_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s will be executed by a single thread because" | |
| " autoscoping for some variables was not successful"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1; | |
| vindex = ccm_vis_index (CCM_QPERMVEC); | |
| ccm_attrs[vindex].vis = CCMV_QUERY | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_QPERMVEC"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Is %s a permutation vector during execution of" | |
| " %s?"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1L2; | |
| vindex = ccm_vis_index (CCM_QEXPR); | |
| ccm_attrs[vindex].vis = CCMV_QUERY | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_QEXPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Is expression %s true for %s?"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1L2; | |
| vindex = ccm_vis_index (CCM_QSAFECALL); | |
| ccm_attrs[vindex].vis = CCMV_QUERY | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_QSAFECALL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Is subroutine %s MP-safe as used in %s?"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1L2; | |
| vindex = ccm_vis_index (CCM_LCOST); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LCOST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below estimated to cost %d cycles per" | |
| " iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_UNROLL); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_UNROLL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below unrolled %d times"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_IMIX); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_IMIX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below has %d loads, %d stores," | |
| " %d prefetches, %d FPadds, %d FPmuls, and" | |
| " %d FPdivs per iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4I5I6; | |
| vindex = ccm_vis_index (CCM_SPILLS); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_SPILLS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below required %d integer register spills," | |
| " %d FP register spills, and used" | |
| " %d integer registers and %d FP registers"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4; | |
| vindex = ccm_vis_index (CCM_LFISSION); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LFISSION"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below fissioned into %d loops"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_LPEEL); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LPEEL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below had iterations peeled off for better" | |
| " unrolling and/or parallelization"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_LBLOCKED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LBLOCKED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below blocked by %d for improved cache" | |
| " performance"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_LTILED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LTILED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below tiled for better performance"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_LUNRJAM); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LUNRJAM"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below unrolled and jammed"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_LWHILE2DO); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LWHILE2DO"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Bounds test for loop below moved to top of loop"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_L2CALL); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_L2CALL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below replaced by a call to %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_LDEAD); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LDEAD"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below deleted as dead code"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_LINTRCHNG); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LINTRCHNG"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below interchanged with loop on line %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_FUSEDTO); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_FUSEDTO"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below fused with loop on line %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_FUSEDFROM); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_FUSEDFROM"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop from line %d fused with loop below"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_VECINTRNSC); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_VECINTRNSC"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below transformed to use calls to vector" | |
| " intrinsic %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_PP1; | |
| vindex = ccm_vis_index (CCM_LSTRIPMINE); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LSTRIPMINE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below strip-mined"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_LNEST2LOOPS); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LNEST2LOOPS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below collapsed with loop on line %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_LREVERSE); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LREVERSE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below has had its iteration direction" | |
| " reversed"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_IMIX2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_IMIX2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below has %d loads, %d stores," | |
| " %d prefetches, %d FPadds, %d FPmuls," | |
| " %d FPdivs, %d FPsubs, and %d FPsqrts per" | |
| " iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4I5I6I7I8; | |
| vindex = ccm_vis_index (CCM_LUNRFULL); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_LUNRFULL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below fully unrolled"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_ELIM_NOAMORTINST); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_ELIM_NOAMORTINST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below was eliminated as it contains no" | |
| " non-amortizable instructions"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_COMP_DALIGN); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_COMP_DALIGN"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Performance of loop below could be improved" | |
| " by compiling with -dalign"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_INTIMIX); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_INTIMIX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below has %d int-loads, %d int-stores," | |
| " %d alu-ops, %d muls, %d int-divs and" | |
| " %d shifts per iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1I2I3I4I5I6; | |
| vindex = ccm_vis_index (CCM_LMULTI_VERSION); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LMULTI_VERSION"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s multi-versioned. Specialized version" | |
| " is %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1L2; | |
| vindex = ccm_vis_index (CCM_LCOST_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LCOST_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s estimated to cost %d cycles per iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_UNROLL_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_UNROLL_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s unrolled %d times"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_IMIX_B); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_IMIX_B"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s has %d loads, %d stores," | |
| " %d prefetches, %d FPadds, %d FPmuls, and" | |
| " %d FPdivs per iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7; | |
| vindex = ccm_vis_index (CCM_SPILLS_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_SPILLS_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s required %d integer register spills," | |
| " %d FP register spills, and used" | |
| " %d integer registers and %d FP registers"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5; | |
| vindex = ccm_vis_index (CCM_LFISSION_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LFISSION_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s fissioned into %d loops, generating:" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2LL3; | |
| vindex = ccm_vis_index (CCM_LFISSION_FRAG); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LFISSION_FRAG"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s contains code from lines: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1II2; | |
| vindex = ccm_vis_index (CCM_LPEEL_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LPEEL_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s had iterations peeled off for better" | |
| " unrolling and/or parallelization"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_LBLOCKED_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LBLOCKED_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s blocked by %d for improved memory" | |
| " hierarchy performance, new inner loop %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2L3; | |
| vindex = ccm_vis_index (CCM_LOUTER_UNROLL); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LOUTER_UNROLL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s is outer-unrolled %d times as part" | |
| " of unroll and jam"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_LJAMMED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LJAMMED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "All %d copies of %s are fused together" | |
| " as part of unroll and jam"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1L2; | |
| vindex = ccm_vis_index (CCM_LWHILE2DO_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LWHILE2DO_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Bounds test for %s moved to top of loop"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_L2CALL_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_L2CALL_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s replaced by a call to %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1P2; | |
| vindex = ccm_vis_index (CCM_LDEAD_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LDEAD_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s deleted as dead code"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_LINTRCHNG_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LINTRCHNG_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s interchanged with %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1L2; | |
| vindex = ccm_vis_index (CCM_LINTRCHNG_ORDER); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LINTRCHNG_ORDER"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "For loop nest below, the final order of loops" | |
| " after interchanging and subsequent" | |
| " transformations is: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_LL1; | |
| vindex = ccm_vis_index (CCM_FUSED_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_FUSED_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s fused with %s, new loop %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1L2L3; | |
| vindex = ccm_vis_index (CCM_VECINTRNSC_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_VECINTRNSC_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s transformed to use calls to vector" | |
| " intrinsics: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1PP2; | |
| vindex = ccm_vis_index (CCM_LSTRIPMINE_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LSTRIPMINE_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s strip-mined by %d, new inner loop %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2L3; | |
| vindex = ccm_vis_index (CCM_LNEST2LOOPS_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LNEST2LOOPS_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s collapsed with %s, new loop %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1L2L3; | |
| vindex = ccm_vis_index (CCM_LREVERSE_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LREVERSE_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s has had its iteration direction reversed"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_IMIX2_B); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_IMIX2_B"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s has %d loads, %d stores," | |
| " %d prefetches, %d FPadds, %d FPmuls," | |
| " %d FPdivs, %d FPsubs, and %d FPsqrts per" | |
| " iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7I8I9; | |
| vindex = ccm_vis_index (CCM_LUNRFULL_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LUNRFULL_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s fully unrolled"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_ELIM_NOAMORTINST_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_ELIM_NOAMORTINST_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s was eliminated as it contains no" | |
| " non-amortizable instructions"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_COMP_DALIGN_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_COMP_DALIGN_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Performance of %s could be improved by" | |
| " compiling with -dalign"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_INTIMIX_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_INTIMIX_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s has %d int-loads, %d int-stores," | |
| " %d alu-ops, %d muls, %d int-divs and" | |
| " %d shifts per iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7; | |
| vindex = ccm_vis_index (CCM_OMP_REGION); | |
| ccm_attrs[vindex].vis = CCMV_PAR | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_OMP_REGION"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Source OpenMP region below has tag %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_R1; | |
| vindex = ccm_vis_index (CCM_LMICROVECTORIZE); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LMICROVECTORIZE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s is micro-vectorized"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_LMULTI_VERSION_2); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LMULTI_VERSION_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s multi-versioned for %s." | |
| " Specialized version is %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1S2L3; | |
| vindex = ccm_vis_index (CCM_LCLONED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LCLONED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s cloned for %s. Clone is %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1S2L3; | |
| vindex = ccm_vis_index (CCM_LUNSWITCHED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LUNSWITCHED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s is unswitched. New loops" | |
| " are %s and %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1L2L3; | |
| vindex = ccm_vis_index (CCM_LRESWITCHED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LRESWITCHED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loops %s and %s and their surrounding" | |
| " conditional code have been merged to" | |
| " form loop %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1L2L3; | |
| vindex = ccm_vis_index (CCM_LSKEWBLOCKED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LSKEWBLOCKED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s skew-blocked by %d with slope" | |
| " %d for improved memory hierarchy" | |
| " performance, new inner loop %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2I3L4; | |
| vindex = ccm_vis_index (CCM_IVSUB); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_IVSUB"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Induction variable substitution performed on %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_ONEITER_REPLACED); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_ONEITER_REPLACED"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s determined to have a trip count of 1;" | |
| " converted to straight-line code"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_IMIX3_B); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_IMIX3_B"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s has %d loads, %d stores," | |
| " %d prefetches, %d FPadds, %d FPmuls," | |
| " %d FPmuladds, %d FPdivs, and %d FPsqrts per" | |
| " iteration"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2I3I4I5I6I7I8I9; | |
| vindex = ccm_vis_index (CCM_PIPELINE); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PIPELINE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below pipelined"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_PIPESTATS); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PIPESTATS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below scheduled with steady-state cycle" | |
| " count = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_CALL); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_CALL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains" | |
| " calls"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INTCC); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INTCC"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it sets" | |
| " multiple integer condition codes."); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_MBAR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_MBAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains a" | |
| " memory barrier instruction"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_MNMX); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_MNMX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains" | |
| " a minimum or a maximum operation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_U2FLT); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_U2FLT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains" | |
| " an unsigned to float conversion"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_GOT); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_GOT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it sets the" | |
| " Global Offset Table pointer"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_IDIV); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_IDIV"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains" | |
| " an integer divide"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_PRFTCH); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_PRFTCH"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains" | |
| " a prefetch operation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_EXIT); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_EXIT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains" | |
| " an exit operation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_REG); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_REG"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it contains" | |
| " instructions that set the %%gsr or %%fsr register"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_UNS); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_UNS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it has an" | |
| " unsigned loop counter"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_UNSUIT); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_UNSUIT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop was unsuitable for pipelining"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INTRINSIC); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INTRINSIC"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined because it has an" | |
| " intrinsic call to %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_BIG); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_BIG"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined as it is too big"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INVINTPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INVINTPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined as it contains too" | |
| " many loop invariant integers = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INVFLTPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INVFLTPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined as it contains too" | |
| " many loop invariant floats = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INVDBLPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INVDBLPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined as it contains too" | |
| " many loop invariant doubles = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_PIPE_SCHEDAFIPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFIPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below was adversely affected by high" | |
| " integer register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_PIPE_SCHEDAFDPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFDPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below was adversely affected by high" | |
| " double register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_PIPE_SCHEDAFFPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFFPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop below was adversely affected by high" | |
| " float register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INTPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INTPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined due to high" | |
| " integer register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_DBLPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_DBLPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined due to high" | |
| " double register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_FLTPR); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_FLTPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop could not be pipelined due to high" | |
| " float register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_PIPELINE_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PIPELINE_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s pipelined"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_PIPESTATS_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PIPESTATS_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s scheduled with steady-state cycle" | |
| " count = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_NOPIPE_CALL_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_CALL_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " calls"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INTCC_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INTCC_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it sets" | |
| " multiple integer condition codes."); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_MBAR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_MBAR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " a memory barrier instruction"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_MNMX_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_MNMX_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " a minimum or a maximum operation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_U2FLT_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_U2FLT_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " an unsigned to float conversion"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_GOT_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_GOT_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it sets the" | |
| " Global Offset Table pointer"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_IDIV_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_IDIV_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " an integer divide"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_PRFTCH_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_PRFTCH_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " a prefetch operation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_EXIT_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_EXIT_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " an exit operation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_REG_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_REG_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " instructions that set the %%gsr or %%fsr register"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_UNS_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_UNS_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it has an" | |
| " unsigned loop counter"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_UNSUIT_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_UNSUIT_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s is unsuitable for pipelining"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INTRINSIC_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INTRINSIC_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined because it contains" | |
| " a call to intrinsic %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1P2; | |
| vindex = ccm_vis_index (CCM_NOPIPE_BIG_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_BIG_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined as it is too big"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INVINTPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INVINTPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined as it contains too" | |
| " many loop invariant integers = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INVFLTPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INVFLTPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined as it contains too" | |
| " many loop invariant floats = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INVDBLPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INVDBLPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined as it contains too" | |
| " many loop invariant doubles = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_PIPE_SCHEDAFIPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFIPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s was adversely affected by high" | |
| " integer register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_PIPE_SCHEDAFDPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFDPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s was adversely affected by high" | |
| " double register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_PIPE_SCHEDAFFPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PIPE_SCHEDAFFPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s was adversely affected by high" | |
| " float register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_NOPIPE_INTPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_INTPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined due to high" | |
| " integer register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_NOPIPE_DBLPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_DBLPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined due to high" | |
| " double register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_NOPIPE_FLTPR_2); | |
| ccm_attrs[vindex].vis = CCMV_PIPE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NOPIPE_FLTPR_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "%s could not be pipelined due to high" | |
| " float register pressure = %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1I2; | |
| vindex = ccm_vis_index (CCM_INLINE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_INLINE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s inlined from source file %s into" | |
| " the code for the following line"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2; | |
| vindex = ccm_vis_index (CCM_INLINE2); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_INLINE2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s inlined from source file %s into" | |
| " inline copy of function %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2P3; | |
| vindex = ccm_vis_index (CCM_INLINE_TMPLT); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_INLINE_TMPLT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s inlined from template file %s" | |
| " into the code for the following line"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2; | |
| vindex = ccm_vis_index (CCM_INLINE_TMPLT2); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_INLINE_TMPLT2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s inlined from template file %s" | |
| " into inline copy of function %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2P3; | |
| vindex = ccm_vis_index (CCM_INLINE_OUT_COPY); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_INLINE_OUT_COPY"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Out-of-line copy of inlined function %s from" | |
| " source file %s generated"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2; | |
| vindex = ccm_vis_index (CCM_NINLINE_REC); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_REC"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Recursive function %s inlined only up to" | |
| " depth %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2; | |
| vindex = ccm_vis_index (CCM_NINLINE_NEST); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_NEST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because inlining is" | |
| " already nested too deeply"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CMPLX); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CMPLX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it contains" | |
| " too many operations"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_FB); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_FB"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because the" | |
| " profile-feedback execution count is too low"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_PAR); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_PAR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it contains" | |
| " explicit parallel pragmas"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_OPT); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_OPT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it is" | |
| " compiled with optimization level <= 2"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_USR); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_USR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because either command" | |
| " line option or source code pragma prohibited it," | |
| " or it's not safe to inline it"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_AUTO); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_AUTO"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because doing so" | |
| " would make automatic storage for %s too large"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1P2; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALLS); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALLS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it contains" | |
| " too many calls"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_ACTUAL); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_ACTUAL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it has more" | |
| " actual parameters than formal parameters"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_FORMAL); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_FORMAL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it has more" | |
| " formal parameters than actual parameters"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_TYPE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_TYPE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because formal" | |
| " argument type does not match actual type"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_ATYPE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_ATYPE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because array formal" | |
| " argument does not match reshaped array actual" | |
| " argument type"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_RETTYPE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_RETTYPE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because return type" | |
| " does not match"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_EXCPT); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_EXCPT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it" | |
| " guarded by an exception handler"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_UNSAFE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_UNSAFE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it might be" | |
| " unsafe (call alloca(), etc)"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_ALIAS); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_ALIAS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because inlining it" | |
| " will make the alias analysis in the calling" | |
| " function more conservative"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_FEMARK); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_FEMARK"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it contains" | |
| " setjmp/longjmp, or indirect goto, etc"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_RAREX); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_RAREX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it is known" | |
| " to be rarely executed"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_CLONING); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_CLONING"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s from source file %s cloned," | |
| " creating cloned function %s; constant" | |
| " parameters propagated to clone"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2P3; | |
| vindex = ccm_vis_index (CCM_INLINE_B); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_INLINE_B"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s inlined from source file %s into" | |
| " the code for the following line. %d loops" | |
| " inlined"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2I3; | |
| vindex = ccm_vis_index (CCM_INLINE2_B); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_INLINE2_B"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s inlined from source file %s into" | |
| " inline copy of function %s. %d loops inlined"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2P3I4; | |
| vindex = ccm_vis_index (CCM_INLINE_LOOP); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_LOOP | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_INLINE_LOOP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Loop in function %s, line %d has" | |
| " tag %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2L3; | |
| vindex = ccm_vis_index (CCM_NINLINE_MULTIENTRY); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_MULTIENTRY"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it" | |
| " contains an ENTRY statement"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_VARARGS); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_VARARGS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because variable" | |
| " argument routines cannot be inlined"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_UNSEEN_BODY); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_UNSEEN_BODY"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because the compiler" | |
| " has not seen the body of the function. Use" | |
| " -xcrossfile or -xipo in order to inline it"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_UPLEVEL); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_UPLEVEL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it is a" | |
| " nested routine containing references to" | |
| " variables defined in an outer function"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CMDLINE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CMDLINE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because either" | |
| " -xinline or source code pragma prohibited it"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALL_CMPLX); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALL_CMPLX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because of the" | |
| " complexity of the calling routine"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_LANG_MISMATCH); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_LANG_MISMATCH"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because it is in" | |
| " a different language"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_RTN_WEAK); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_RTN_WEAK"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it" | |
| " is marked weak"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALL_WEAKFILE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALL_WEAKFILE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because it is" | |
| " in a different file and it contains a" | |
| " call to a weak routine"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALL_TRYCATCH); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALL_TRYCATCH"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because it is" | |
| " in a different file and contains an" | |
| " explicit try/catch"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALL_REGP); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALL_REGP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because it would" | |
| " cause excessive register pressure"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_RTN_REGP); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_RTN_REGP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it would" | |
| " cause excessive register pressure"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALL_XPENSV); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALL_XPENSV"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because analysis" | |
| " exceeds the compilation time limit"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_READONLYIR); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_READONLYIR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it is in a file" | |
| " specified as read-only by -xipo_archive=readonly" | |
| " and it contains calls to static functions"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALL_THUNK); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALL_THUNK"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because it is in a" | |
| " compiler-generated function that does not" | |
| " permit inlining"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CALL_XTARGETS); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CALL_XTARGETS"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Indirect callsite has too many targets;" | |
| " callsite marked do not inline"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NINLINE_SELFTAIL_RECURSIVE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_SELFTAIL_RECURSIVE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because" | |
| " of a recursive tail-call to itself"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_PRAGMA); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_PRAGMA"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it contains" | |
| " explicit parallel or alias pragmas"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CMPLX2); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CMPLX2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it contains too" | |
| " many operations. Increase max_inst_hard in order" | |
| " to inline it: -xinline_param=max_inst_hard:n"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_RARE); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_RARE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because the call" | |
| " is rarely executed"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_PAR2); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_PAR2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it is called" | |
| " within a region guarded by an explicit" | |
| " parallel pragmas"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_G_LIMIT); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_G_LIMIT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it would exceed" | |
| " the permitted global code size growth limit. Try" | |
| " to increase max_growth in order to inline it:" | |
| " -xinline_param=max_growth:n"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_L_LIMIT); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_L_LIMIT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it would exceed" | |
| " the maximum function size growth limit. Increase" | |
| " max_function_inst in order to inline it:" | |
| " -xinline_param=max_function_inst:n"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_REC2); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_REC2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Recursive function %s is inlined only up to" | |
| " %d levels and up to %d size. Increase" | |
| " max_recursive_deptha or max_recursive_inst in" | |
| " order to inline it:" | |
| " -xinline_param=max_recursive_depth:n," | |
| " -xinline_param=max_recursive_inst:n"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2I3; | |
| vindex = ccm_vis_index (CCM_NINLINE_FB2); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_FB2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because the" | |
| " profile-feedback execution count is too" | |
| " low. Decrease min_counter in order to inline it:" | |
| " -xinline_param:min_counter:n"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_CS_CMPLX); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_CS_CMPLX"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because called" | |
| " function's size is too big. Increase" | |
| " max_inst_soft in order to inline it:" | |
| " -xinline_param=max_inst_soft:n"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_R_EXCPT); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_R_EXCPT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it contains" | |
| " an exception handler"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_ASM); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_ASM"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because" | |
| " it contains asm statements"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_R_READONLYIR); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_R_READONLYIR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it is in a file" | |
| " specified as read-only by -xipo_archive=readonly" | |
| " and it is a static function"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_C_READONLYIR); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_C_READONLYIR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s not inlined because the calling" | |
| " function is in a file specified as read-only" | |
| " by -xipo_archive=readonly"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NINLINE_NEVERRETURN); | |
| ccm_attrs[vindex].vis = CCMV_INLINE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NINLINE_NEVERRETURN"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it" | |
| " never returns"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_MPREFETCH); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_MPREFETCH"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Prefetch of %s inserted"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_MPREFETCH_LD); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_MPREFETCH_LD"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Prefetch of %s inserted for load at %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1X2; | |
| vindex = ccm_vis_index (CCM_MPREFETCH_ST); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_MPREFETCH_ST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Prefetch of %s inserted for store at %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1X2; | |
| vindex = ccm_vis_index (CCM_MPREFETCH_FB); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_MPREFETCH_FB"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Prefetch of %s inserted based on feedback data"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_MPREFETCH_FB_LD); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_MPREFETCH_FB_LD"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Prefetch of %s inserted for load at %s based" | |
| " on feedback data"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1X2; | |
| vindex = ccm_vis_index (CCM_MPREFETCH_FB_ST); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_MPREFETCH_FB_ST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Prefetch of %s inserted for store at %s based" | |
| " on feedback data"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1X2; | |
| vindex = ccm_vis_index (CCM_MLOAD); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MLOAD"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Load below refers to %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_MSTORE); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MSTORE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Store below refers to %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_MLOAD_P); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MLOAD_P"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Load below refers to %s, and was prefetched" | |
| " at %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1X2; | |
| vindex = ccm_vis_index (CCM_MSTORE_P); | |
| ccm_attrs[vindex].vis = CCMV_MEMOPS | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MSTORE_P"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Store below refers to %s, and was prefetched" | |
| " at %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1X2; | |
| vindex = ccm_vis_index (CCM_COPYIN); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_COPYIN"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Parameter %d caused a copyin in the following" | |
| " call"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_COPYOUT); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_COPYOUT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Parameter %d caused a copyout in the following" | |
| " call"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_COPYINOUT); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_COPYINOUT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Parameter %d caused both a copyin and copyout" | |
| " in the following call"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_PADDING); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_PADDING"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Padding of %d bytes inserted before" | |
| " array %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1V2; | |
| vindex = ccm_vis_index (CCM_PADCOMMON); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_PADCOMMON"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Padding of %d bytes inserted before" | |
| " array %s in common block %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1V2V3; | |
| vindex = ccm_vis_index (CCM_ALIGN_EQ); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_ALIGN_EQ"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Variable/array %s can not be double-aligned," | |
| " because it is equivalenced"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_ALIGN_PERF); | |
| ccm_attrs[vindex].vis = CCMV_FE; | |
| ccm_attrs[vindex].name = "CCM_ALIGN_PERF"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Alignment of variables in common block may cause" | |
| " performance degradation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_ALIGN_STRUCT); | |
| ccm_attrs[vindex].vis = CCMV_FE; | |
| ccm_attrs[vindex].name = "CCM_ALIGN_STRUCT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Alignment of component %s in numeric sequence" | |
| " structure %s may cause performance degradation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1S2; | |
| vindex = ccm_vis_index (CCM_TMP_COPY); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_TMP_COPY"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Argument %s copied to a temporary"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_TMP_COPYM); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_TMP_COPYM"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Argument %s might be copied to a temporary;" | |
| " runtime decision made"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_PROC_MISMATCH); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_PROC_MISMATCH"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Argument %d to subprogram %s differs from" | |
| " reference on line %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1P2I3; | |
| vindex = ccm_vis_index (CCM_PROC_MISMATCH2); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_PROC_MISMATCH2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Scalar argument %d to subprogram %s is" | |
| " referred to as an array on line %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1P2I3; | |
| vindex = ccm_vis_index (CCM_PROC_MISMATCH3); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_PROC_MISMATCH3"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Return type/rank from subprogram %s differs" | |
| " from return on line %d"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2; | |
| vindex = ccm_vis_index (CCM_DO_EXPR); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_DO_EXPR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "DO statement bounds lead to no executions of the" | |
| " loop"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_AUTO_BND); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_AUTO_BND"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "The bounds for automatic variable %s are not" | |
| " available at all entry points; zero-length" | |
| " variable might be allocated"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_LIT_PAD); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_LIT_PAD"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "The character string literal %s padded" | |
| " to the length specified for the dummy argument"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_ARRAY_LOOP); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_ARRAY_LOOP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Array statement below generated a loop"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_ARRAY_LOOPNEST); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_OBS; | |
| ccm_attrs[vindex].name = "CCM_ARRAY_LOOPNEST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Array statement below generated %d nested loops"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_ALIGN_PERF2); | |
| ccm_attrs[vindex].vis = CCMV_FE; | |
| ccm_attrs[vindex].name = "CCM_ALIGN_PERF2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Alignment of variable %s in common block %s" | |
| " may cause a performance degradation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1V2; | |
| vindex = ccm_vis_index (CCM_ALIGN_PERF3); | |
| ccm_attrs[vindex].vis = CCMV_FE; | |
| ccm_attrs[vindex].name = "CCM_ALIGN_PERF3"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Alignment of variable %s in blank common may" | |
| " cause a performance degradation"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_IO_LOOP_ARRAY); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_IO_LOOP_ARRAY"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "I/O implied do item below generated an array" | |
| " section"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_TMPCONST); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_TMPCONST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Implicit invocation of class %s constructor for" | |
| " temporary"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_TMPDEST); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_TMPDEST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Implicit invocation of class %s destructor for" | |
| " temporary"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_DBL_CONST); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_DBL_CONST"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Double constant %s used in float expression"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_MINLINE); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MINLINE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s inlined from source file %s by" | |
| " front-end"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2; | |
| vindex = ccm_vis_index (CCM_MINLINE2); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MINLINE2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s from source file %s inlined into" | |
| " inline copy of method %s by front-end"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2P3; | |
| vindex = ccm_vis_index (CCM_MINLINE3); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MINLINE3"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it uses keyword" | |
| " %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1S2; | |
| vindex = ccm_vis_index (CCM_MINLINE4); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC | CCMV_UNIMPL; | |
| ccm_attrs[vindex].name = "CCM_MINLINE4"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s not inlined because it is too" | |
| " complex"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_TMP_COPYOUT); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_TMP_COPYOUT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Argument %s copied from a temporary"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_TMP_COPYOUTM); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_TMP_COPYOUTM"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Argument %s might be copied from a temporary;" | |
| " runtime decision made"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_TMP_COPYINOUT); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_TMP_COPYINOUT"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Argument %s copied in and out of a temporary"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_TMP_COPYINOUTM); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_TMP_COPYINOUTM"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Argument %s might be copied in and out of" | |
| " a temporary; runtime decision made"); | |
| ccm_attrs[vindex].fmt = CCMFMT_V1; | |
| vindex = ccm_vis_index (CCM_ARRAY_LOOP_2); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_ARRAY_LOOP_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Array statement below generated loop %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_ARRAY_LOOPNEST_2); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_ARRAY_LOOPNEST_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Array statement below generated %d nested" | |
| " loops: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1LL2; | |
| vindex = ccm_vis_index (CCM_IO_LOOP_ARRAY_2); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_IO_LOOP_ARRAY_2"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "I/O implied do item below generated an array" | |
| " section: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_USER_LOOP); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_USER_LOOP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Source loop below has tag %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_FOUND_LOOP); | |
| ccm_attrs[vindex].vis = CCMV_FE | CCMV_LOOP | CCMV_BASIC | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_FOUND_LOOP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Discovered loop below has tag %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_MFUNCTION_LOOP); | |
| ccm_attrs[vindex].vis = CCMV_LOOP | CCMV_BASIC | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_MFUNCTION_LOOP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Copy in M-function of loop below has tag %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_L1; | |
| vindex = ccm_vis_index (CCM_FSIMPLE); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_FSIMPLE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Transformations for fsimple=%d applied"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_STACK); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_STACK"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Function %s requires %d Mbytes of stack" | |
| " storage"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2; | |
| vindex = ccm_vis_index (CCM_TAILRECUR); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_TAILRECUR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Recursive tail call in %s optimized to jump to" | |
| " entry point"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_TAILCALL); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC | CCMV_UNIMPL | CCMV_WANT; | |
| ccm_attrs[vindex].name = "CCM_TAILCALL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to function %s was tail-call optimized"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1; | |
| vindex = ccm_vis_index (CCM_NI_EXIT_OR_PSEUDO); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_EXIT_OR_PSEUDO"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " contains the pseudo instruction %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_NI_BAD_UNARY_OPC); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_UNARY_OPC"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " contains the instruction opcode %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_NI_INT_LDD_ON_V9); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_INT_LDD_ON_V9"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " contains integer ldd instructions, which are" | |
| " deprecated in the v9 architecture"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NI_LATE_INL_OPC); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_LATE_INL_OPC"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " contains the instruction opcode %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_NI_BAD_IMM_OP); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_IMM_OP"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because the" | |
| " relocation or immediate operand %s is not well" | |
| " understood by the optimizer"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_NI_BAD_STATELEAF); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_STATELEAF"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " references the state register %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_NI_BAD_ASR_19); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_ASR_19"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because" | |
| " %%asr19 is not supported in pre v8plus code"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NI_BAD_FSR_USE); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_FSR_USE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because" | |
| " references to %%fsr can only be optimized when the" | |
| " -iaopts flag is used"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NI_BAD_REGISTER); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_REGISTER"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " references the register %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| vindex = ccm_vis_index (CCM_NI_NO_RET_VAL); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_NO_RET_VAL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " does not return the value declared"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NI_DELAY); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_DELAY"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " contains a non nop delay slot"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NI_SCALL); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_SCALL"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " calls a function which returns a structure"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_CASE_POSITION); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_CASE_POSITION"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Case block below was placed at position %d" | |
| " based on execution frequency"); | |
| ccm_attrs[vindex].fmt = CCMFMT_I1; | |
| vindex = ccm_vis_index (CCM_CALL_WITH_CODE); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_CALL_WITH_CODE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Call to %s replaced with inline code. %d" | |
| " loops created: %s"); | |
| ccm_attrs[vindex].fmt = CCMFMT_P1I2LL3; | |
| vindex = ccm_vis_index (CCM_NI_BAD_SP_ADDR); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_SP_ADDR"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " contains a %%sp+reg address"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NI_BAD_SP_USAGE); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_BAD_SP_USAGE"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " uses/defines the stack pointer in a non-load/store instruction"); | |
| ccm_attrs[vindex].fmt = CCMFMT_NONE; | |
| vindex = ccm_vis_index (CCM_NI_MIXED_REG_TYPES); | |
| ccm_attrs[vindex].vis = CCMV_CG | CCMV_BASIC; | |
| ccm_attrs[vindex].name = "CCM_NI_MIXED_REG_TYPES"; | |
| ccm_attrs[vindex].msg = catgets (ccm_catd, 99, vindex, | |
| "Template could not be early inlined because it" | |
| " contains register %s used as both x-register and register pair"); | |
| ccm_attrs[vindex].fmt = CCMFMT_S1; | |
| } |