/* Copyright (C) 2021-2023 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 #include #include #include #include #include #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 *) calloc (size, sizeof (Ccm_Attr_t)); if (ccm_attrs == NULL) exit (1); 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; }