< prev index next >

src/hotspot/share/opto/graphKit.hpp

Print this page




 536   }
 537   // This is the base version which is given an alias index.
 538   Node* make_load(Node* ctl, Node* adr, const Type* t, BasicType bt, int adr_idx,
 539                   MemNode::MemOrd mo, LoadNode::ControlDependency control_dependency = LoadNode::DependsOnlyOnTest,
 540                   bool require_atomic_access = false, bool unaligned = false,
 541                   bool mismatched = false);
 542 
 543   // Create & transform a StoreNode and store the effect into the
 544   // parser's memory state.
 545   //
 546   // We must ensure that stores of object references will be visible
 547   // only after the object's initialization. So the clients of this
 548   // procedure must indicate that the store requires `release'
 549   // semantics, if the stored value is an object reference that might
 550   // point to a new object and may become externally visible.
 551   Node* store_to_memory(Node* ctl, Node* adr, Node* val, BasicType bt,
 552                         const TypePtr* adr_type,
 553                         MemNode::MemOrd mo,
 554                         bool require_atomic_access = false,
 555                         bool unaligned = false,
 556                         bool mismatched = false) {

 557     // This version computes alias_index from an address type
 558     assert(adr_type != NULL, "use other store_to_memory factory");
 559     return store_to_memory(ctl, adr, val, bt,
 560                            C->get_alias_index(adr_type),
 561                            mo, require_atomic_access,
 562                            unaligned, mismatched);

 563   }
 564   // This is the base version which is given alias index
 565   // Return the new StoreXNode
 566   Node* store_to_memory(Node* ctl, Node* adr, Node* val, BasicType bt,
 567                         int adr_idx,
 568                         MemNode::MemOrd,
 569                         bool require_atomic_access = false,
 570                         bool unaligned = false,
 571                         bool mismatched = false);

 572 
 573   // Perform decorated accesses
 574 
 575   Node* access_store_at(Node* ctl,
 576                         Node* obj,   // containing obj
 577                         Node* adr,   // actual adress to store val at
 578                         const TypePtr* adr_type,
 579                         Node* val,
 580                         const Type* val_type,
 581                         BasicType bt,
 582                         DecoratorSet decorators);
 583 
 584   Node* access_load_at(Node* obj,   // containing obj
 585                        Node* adr,   // actual adress to load val at
 586                        const TypePtr* adr_type,
 587                        const Type* val_type,
 588                        BasicType bt,
 589                        DecoratorSet decorators);
 590 
 591   Node* access_load(Node* adr,   // actual adress to load val at




 536   }
 537   // This is the base version which is given an alias index.
 538   Node* make_load(Node* ctl, Node* adr, const Type* t, BasicType bt, int adr_idx,
 539                   MemNode::MemOrd mo, LoadNode::ControlDependency control_dependency = LoadNode::DependsOnlyOnTest,
 540                   bool require_atomic_access = false, bool unaligned = false,
 541                   bool mismatched = false);
 542 
 543   // Create & transform a StoreNode and store the effect into the
 544   // parser's memory state.
 545   //
 546   // We must ensure that stores of object references will be visible
 547   // only after the object's initialization. So the clients of this
 548   // procedure must indicate that the store requires `release'
 549   // semantics, if the stored value is an object reference that might
 550   // point to a new object and may become externally visible.
 551   Node* store_to_memory(Node* ctl, Node* adr, Node* val, BasicType bt,
 552                         const TypePtr* adr_type,
 553                         MemNode::MemOrd mo,
 554                         bool require_atomic_access = false,
 555                         bool unaligned = false,
 556                         bool mismatched = false,
 557                         int storeZ = -1) {
 558     // This version computes alias_index from an address type
 559     assert(adr_type != NULL, "use other store_to_memory factory");
 560     return store_to_memory(ctl, adr, val, bt,
 561                            C->get_alias_index(adr_type),
 562                            mo, require_atomic_access,
 563                            unaligned, mismatched,
 564                            storeZ);
 565   }
 566   // This is the base version which is given alias index
 567   // Return the new StoreXNode
 568   Node* store_to_memory(Node* ctl, Node* adr, Node* val, BasicType bt,
 569                         int adr_idx,
 570                         MemNode::MemOrd,
 571                         bool require_atomic_access = false,
 572                         bool unaligned = false,
 573                         bool mismatched = false,
 574                         int storeZ = -1);
 575 
 576   // Perform decorated accesses
 577 
 578   Node* access_store_at(Node* ctl,
 579                         Node* obj,   // containing obj
 580                         Node* adr,   // actual adress to store val at
 581                         const TypePtr* adr_type,
 582                         Node* val,
 583                         const Type* val_type,
 584                         BasicType bt,
 585                         DecoratorSet decorators);
 586 
 587   Node* access_load_at(Node* obj,   // containing obj
 588                        Node* adr,   // actual adress to load val at
 589                        const TypePtr* adr_type,
 590                        const Type* val_type,
 591                        BasicType bt,
 592                        DecoratorSet decorators);
 593 
 594   Node* access_load(Node* adr,   // actual adress to load val at


< prev index next >