263 virtual void register_potential_barrier_node(Node* node) const { } 264 virtual void unregister_potential_barrier_node(Node* node) const { } 265 virtual void eliminate_gc_barrier(PhaseMacroExpand* macro, Node* node) const { } 266 virtual void enqueue_useful_gc_barrier(PhaseIterGVN* igvn, Node* node) const {} 267 virtual void eliminate_useless_gc_barriers(Unique_Node_List &useful, Compile* C) const {} 268 virtual void add_users_to_worklist(Unique_Node_List* worklist) const {} 269 270 // Allow barrier sets to have shared state that is preserved across a compilation unit. 271 // This could for example comprise macro nodes to be expanded during macro expansion. 272 virtual void* create_barrier_state(Arena* comp_arena) const { return NULL; } 273 // If the BarrierSetC2 state has kept macro nodes in its compilation unit state to be 274 // expanded later, then now is the time to do so. 275 virtual bool expand_macro_nodes(PhaseMacroExpand* macro) const { return false; } 276 277 enum CompilePhase { 278 BeforeOptimize, /* post_parse = true */ 279 BeforeExpand, /* post_parse = false */ 280 BeforeCodeGen 281 }; 282 virtual void verify_gc_barriers(Compile* compile, CompilePhase phase) const {} 283 }; 284 285 #endif // SHARE_GC_SHARED_C2_BARRIERSETC2_HPP | 263 virtual void register_potential_barrier_node(Node* node) const { } 264 virtual void unregister_potential_barrier_node(Node* node) const { } 265 virtual void eliminate_gc_barrier(PhaseMacroExpand* macro, Node* node) const { } 266 virtual void enqueue_useful_gc_barrier(PhaseIterGVN* igvn, Node* node) const {} 267 virtual void eliminate_useless_gc_barriers(Unique_Node_List &useful, Compile* C) const {} 268 virtual void add_users_to_worklist(Unique_Node_List* worklist) const {} 269 270 // Allow barrier sets to have shared state that is preserved across a compilation unit. 271 // This could for example comprise macro nodes to be expanded during macro expansion. 272 virtual void* create_barrier_state(Arena* comp_arena) const { return NULL; } 273 // If the BarrierSetC2 state has kept macro nodes in its compilation unit state to be 274 // expanded later, then now is the time to do so. 275 virtual bool expand_macro_nodes(PhaseMacroExpand* macro) const { return false; } 276 277 enum CompilePhase { 278 BeforeOptimize, /* post_parse = true */ 279 BeforeExpand, /* post_parse = false */ 280 BeforeCodeGen 281 }; 282 virtual void verify_gc_barriers(Compile* compile, CompilePhase phase) const {} 283 284 virtual bool flatten_gc_alias_type(const TypePtr*& adr_type) const { return false; } 285 #ifdef ASSERT 286 virtual bool verify_gc_alias_type(const TypePtr* adr_type, int offset) const { return false; } 287 #endif 288 }; 289 290 #endif // SHARE_GC_SHARED_C2_BARRIERSETC2_HPP |