1287 AliasCacheEntry* probe_alias_cache(const TypePtr* adr_type);
1288 const TypePtr *flatten_alias_type(const TypePtr* adr_type) const;
1289 AliasType* find_alias_type(const TypePtr* adr_type, bool no_create, ciField* field);
1290
1291 void verify_top(Node*) const PRODUCT_RETURN;
1292
1293 // Intrinsic setup.
1294 void register_library_intrinsics(); // initializer
1295 CallGenerator* make_vm_intrinsic(ciMethod* m, bool is_virtual); // constructor
1296 int intrinsic_insertion_index(ciMethod* m, bool is_virtual, bool& found); // helper
1297 CallGenerator* find_intrinsic(ciMethod* m, bool is_virtual); // query fn
1298 void register_intrinsic(CallGenerator* cg); // update fn
1299
1300 #ifndef PRODUCT
1301 static juint _intrinsic_hist_count[vmIntrinsics::ID_LIMIT];
1302 static jubyte _intrinsic_hist_flags[vmIntrinsics::ID_LIMIT];
1303 #endif
1304 // Function calls made by the public function final_graph_reshaping.
1305 // No need to be made public as they are not called elsewhere.
1306 void final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc);
1307 void final_graph_reshaping_walk( Node_Stack &nstack, Node *root, Final_Reshape_Counts &frc );
1308 void eliminate_redundant_card_marks(Node* n);
1309
1310 public:
1311
1312 // Note: Histogram array size is about 1 Kb.
1313 enum { // flag bits:
1314 _intrinsic_worked = 1, // succeeded at least once
1315 _intrinsic_failed = 2, // tried it but it failed
1316 _intrinsic_disabled = 4, // was requested but disabled (e.g., -XX:-InlineUnsafeOps)
1317 _intrinsic_virtual = 8, // was seen in the virtual form (rare)
1318 _intrinsic_both = 16 // was seen in the non-virtual form (usual)
1319 };
1320 // Update histogram. Return boolean if this is a first-time occurrence.
1321 static bool gather_intrinsic_statistics(vmIntrinsics::ID id,
1322 bool is_virtual, int flags) PRODUCT_RETURN0;
1323 static void print_intrinsic_statistics() PRODUCT_RETURN;
1324
1325 // Graph verification code
1326 // Walk the node list, verifying that there is a one-to-one
|
1287 AliasCacheEntry* probe_alias_cache(const TypePtr* adr_type);
1288 const TypePtr *flatten_alias_type(const TypePtr* adr_type) const;
1289 AliasType* find_alias_type(const TypePtr* adr_type, bool no_create, ciField* field);
1290
1291 void verify_top(Node*) const PRODUCT_RETURN;
1292
1293 // Intrinsic setup.
1294 void register_library_intrinsics(); // initializer
1295 CallGenerator* make_vm_intrinsic(ciMethod* m, bool is_virtual); // constructor
1296 int intrinsic_insertion_index(ciMethod* m, bool is_virtual, bool& found); // helper
1297 CallGenerator* find_intrinsic(ciMethod* m, bool is_virtual); // query fn
1298 void register_intrinsic(CallGenerator* cg); // update fn
1299
1300 #ifndef PRODUCT
1301 static juint _intrinsic_hist_count[vmIntrinsics::ID_LIMIT];
1302 static jubyte _intrinsic_hist_flags[vmIntrinsics::ID_LIMIT];
1303 #endif
1304 // Function calls made by the public function final_graph_reshaping.
1305 // No need to be made public as they are not called elsewhere.
1306 void final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc);
1307 void final_graph_reshaping_main_switch(Node* n, Final_Reshape_Counts& frc, uint nop);
1308 void final_graph_reshaping_walk( Node_Stack &nstack, Node *root, Final_Reshape_Counts &frc );
1309 void eliminate_redundant_card_marks(Node* n);
1310
1311 public:
1312
1313 // Note: Histogram array size is about 1 Kb.
1314 enum { // flag bits:
1315 _intrinsic_worked = 1, // succeeded at least once
1316 _intrinsic_failed = 2, // tried it but it failed
1317 _intrinsic_disabled = 4, // was requested but disabled (e.g., -XX:-InlineUnsafeOps)
1318 _intrinsic_virtual = 8, // was seen in the virtual form (rare)
1319 _intrinsic_both = 16 // was seen in the non-virtual form (usual)
1320 };
1321 // Update histogram. Return boolean if this is a first-time occurrence.
1322 static bool gather_intrinsic_statistics(vmIntrinsics::ID id,
1323 bool is_virtual, int flags) PRODUCT_RETURN0;
1324 static void print_intrinsic_statistics() PRODUCT_RETURN;
1325
1326 // Graph verification code
1327 // Walk the node list, verifying that there is a one-to-one
|