< prev index next >

src/hotspot/share/opto/compile.hpp

Print this page
rev 54763 : 8213084: Rework and enhance Print[Opto]Assembly output
Reviewed-by:


1331     _intrinsic_disabled = 4,    // was requested but disabled (e.g., -XX:-InlineUnsafeOps)
1332     _intrinsic_virtual = 8,     // was seen in the virtual form (rare)
1333     _intrinsic_both = 16        // was seen in the non-virtual form (usual)
1334   };
1335   // Update histogram.  Return boolean if this is a first-time occurrence.
1336   static bool gather_intrinsic_statistics(vmIntrinsics::ID id,
1337                                           bool is_virtual, int flags) PRODUCT_RETURN0;
1338   static void print_intrinsic_statistics() PRODUCT_RETURN;
1339 
1340   // Graph verification code
1341   // Walk the node list, verifying that there is a one-to-one
1342   // correspondence between Use-Def edges and Def-Use edges
1343   // The option no_dead_code enables stronger checks that the
1344   // graph is strongly connected from root in both directions.
1345   void verify_graph_edges(bool no_dead_code = false) PRODUCT_RETURN;
1346 
1347   // End-of-run dumps.
1348   static void print_statistics() PRODUCT_RETURN;
1349 
1350   // Dump formatted assembly
1351   void dump_asm(int *pcs = NULL, uint pc_limit = 0) PRODUCT_RETURN;






1352   void dump_pc(int *pcs, int pc_limit, Node *n);
1353 
1354   // Verify ADLC assumptions during startup
1355   static void adlc_verification() PRODUCT_RETURN;
1356 
1357   // Definitions of pd methods
1358   static void pd_compiler2_init();
1359 
1360   // Static parse-time type checking logic for gen_subtype_check:
1361   enum { SSC_always_false, SSC_always_true, SSC_easy_test, SSC_full_test };
1362   int static_subtype_check(ciKlass* superk, ciKlass* subk);
1363 
1364   static Node* conv_I2X_index(PhaseGVN* phase, Node* offset, const TypeInt* sizetype,
1365                               // Optional control dependency (for example, on range check)
1366                               Node* ctrl = NULL);
1367 
1368   // Convert integer value to a narrowed long type dependent on ctrl (for example, a range check)
1369   static Node* constrained_convI2L(PhaseGVN* phase, Node* value, const TypeInt* itype, Node* ctrl);
1370 
1371   // Auxiliary method for randomized fuzzing/stressing


1331     _intrinsic_disabled = 4,    // was requested but disabled (e.g., -XX:-InlineUnsafeOps)
1332     _intrinsic_virtual = 8,     // was seen in the virtual form (rare)
1333     _intrinsic_both = 16        // was seen in the non-virtual form (usual)
1334   };
1335   // Update histogram.  Return boolean if this is a first-time occurrence.
1336   static bool gather_intrinsic_statistics(vmIntrinsics::ID id,
1337                                           bool is_virtual, int flags) PRODUCT_RETURN0;
1338   static void print_intrinsic_statistics() PRODUCT_RETURN;
1339 
1340   // Graph verification code
1341   // Walk the node list, verifying that there is a one-to-one
1342   // correspondence between Use-Def edges and Def-Use edges
1343   // The option no_dead_code enables stronger checks that the
1344   // graph is strongly connected from root in both directions.
1345   void verify_graph_edges(bool no_dead_code = false) PRODUCT_RETURN;
1346 
1347   // End-of-run dumps.
1348   static void print_statistics() PRODUCT_RETURN;
1349 
1350   // Dump formatted assembly
1351 #if defined(SUPPORT_OPTO_ASSEMBLY)
1352   void dump_asm_on(outputStream* ost, int* pcs, uint pc_limit);
1353   void dump_asm(int* pcs = NULL, uint pc_limit = 0) { dump_asm_on(tty, pcs, pc_limit); }
1354 #else
1355   void dump_asm_on(outputStream* ost, int* pcs, uint pc_limit) { return; }
1356   void dump_asm(int* pcs = NULL, uint pc_limit = 0) { return; }
1357 #endif
1358   void dump_pc(int *pcs, int pc_limit, Node *n);
1359 
1360   // Verify ADLC assumptions during startup
1361   static void adlc_verification() PRODUCT_RETURN;
1362 
1363   // Definitions of pd methods
1364   static void pd_compiler2_init();
1365 
1366   // Static parse-time type checking logic for gen_subtype_check:
1367   enum { SSC_always_false, SSC_always_true, SSC_easy_test, SSC_full_test };
1368   int static_subtype_check(ciKlass* superk, ciKlass* subk);
1369 
1370   static Node* conv_I2X_index(PhaseGVN* phase, Node* offset, const TypeInt* sizetype,
1371                               // Optional control dependency (for example, on range check)
1372                               Node* ctrl = NULL);
1373 
1374   // Convert integer value to a narrowed long type dependent on ctrl (for example, a range check)
1375   static Node* constrained_convI2L(PhaseGVN* phase, Node* value, const TypeInt* itype, Node* ctrl);
1376 
1377   // Auxiliary method for randomized fuzzing/stressing
< prev index next >