src/share/vm/adlc/archDesc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/adlc

src/share/vm/adlc/archDesc.cpp

Print this page
rev 5513 : 8026844: Various Math functions needs intrinsification
Reviewed-by: duke


1176   // Build mapping from ideal names to ideal indices
1177   fprintf(fp_cpp, "\n");
1178   fprintf(fp_cpp, "// Mapping from machine-independent opcode to boolean\n");
1179   fprintf(fp_cpp, "const        char must_clone[] = {\n");
1180   for (int idealIndex = 0; idealIndex < _last_opcode; ++idealIndex) {
1181     int         must_clone = 0;
1182     const char *idealName = NodeClassNames[idealIndex];
1183     // Previously selected constants for cloning
1184     // !!!!!
1185     // These are the current machine-dependent clones
1186     if ( strcmp(idealName,"CmpI") == 0
1187          || strcmp(idealName,"CmpU") == 0
1188          || strcmp(idealName,"CmpP") == 0
1189          || strcmp(idealName,"CmpN") == 0
1190          || strcmp(idealName,"CmpL") == 0
1191          || strcmp(idealName,"CmpD") == 0
1192          || strcmp(idealName,"CmpF") == 0
1193          || strcmp(idealName,"FastLock") == 0
1194          || strcmp(idealName,"FastUnlock") == 0
1195          || strcmp(idealName,"AddExactI") == 0







1196          || strcmp(idealName,"FlagsProj") == 0
1197          || strcmp(idealName,"Bool") == 0
1198          || strcmp(idealName,"Binary") == 0 ) {
1199       // Removed ConI from the must_clone list.  CPUs that cannot use
1200       // large constants as immediates manifest the constant as an
1201       // instruction.  The must_clone flag prevents the constant from
1202       // floating up out of loops.
1203       must_clone = 1;
1204     }
1205     fprintf(fp_cpp, "  %d%s // %s: %d\n", must_clone,
1206       (idealIndex != (_last_opcode - 1)) ? "," : " // no trailing comma",
1207       idealName, idealIndex);
1208   }
1209   // Finish defining table
1210   fprintf(fp_cpp, "};\n");
1211 }


1176   // Build mapping from ideal names to ideal indices
1177   fprintf(fp_cpp, "\n");
1178   fprintf(fp_cpp, "// Mapping from machine-independent opcode to boolean\n");
1179   fprintf(fp_cpp, "const        char must_clone[] = {\n");
1180   for (int idealIndex = 0; idealIndex < _last_opcode; ++idealIndex) {
1181     int         must_clone = 0;
1182     const char *idealName = NodeClassNames[idealIndex];
1183     // Previously selected constants for cloning
1184     // !!!!!
1185     // These are the current machine-dependent clones
1186     if ( strcmp(idealName,"CmpI") == 0
1187          || strcmp(idealName,"CmpU") == 0
1188          || strcmp(idealName,"CmpP") == 0
1189          || strcmp(idealName,"CmpN") == 0
1190          || strcmp(idealName,"CmpL") == 0
1191          || strcmp(idealName,"CmpD") == 0
1192          || strcmp(idealName,"CmpF") == 0
1193          || strcmp(idealName,"FastLock") == 0
1194          || strcmp(idealName,"FastUnlock") == 0
1195          || strcmp(idealName,"AddExactI") == 0
1196          || strcmp(idealName,"AddExactL") == 0
1197          || strcmp(idealName,"SubExactI") == 0
1198          || strcmp(idealName,"SubExactL") == 0
1199          || strcmp(idealName,"MulExactI") == 0
1200          || strcmp(idealName,"MulExactL") == 0
1201          || strcmp(idealName,"NegExactI") == 0
1202          || strcmp(idealName,"NegExactL") == 0
1203          || strcmp(idealName,"FlagsProj") == 0
1204          || strcmp(idealName,"Bool") == 0
1205          || strcmp(idealName,"Binary") == 0 ) {
1206       // Removed ConI from the must_clone list.  CPUs that cannot use
1207       // large constants as immediates manifest the constant as an
1208       // instruction.  The must_clone flag prevents the constant from
1209       // floating up out of loops.
1210       must_clone = 1;
1211     }
1212     fprintf(fp_cpp, "  %d%s // %s: %d\n", must_clone,
1213       (idealIndex != (_last_opcode - 1)) ? "," : " // no trailing comma",
1214       idealName, idealIndex);
1215   }
1216   // Finish defining table
1217   fprintf(fp_cpp, "};\n");
1218 }
src/share/vm/adlc/archDesc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File