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