< prev index next > src/hotspot/share/opto/memnode.cpp
Print this page
uint8_t MemNode::barrier_data(const Node* n) {
if (n->is_LoadStore()) {
return n->as_LoadStore()->barrier_data();
} else if (n->is_Mem()) {
return n->as_Mem()->barrier_data();
+ } else if (n->is_DecodeN() && n->in(1)->is_Load()) {
+ return n->in(1)->as_Load()->barrier_data();
}
return 0;
}
+ MemNode::MemOrd MemNode::memory_order(const Node* n) {
+ if (n->is_Load()) {
+ return n->as_Load()->memory_order();
+ } else if (n->is_Store()) {
+ return n->as_Store()->memory_order();;
+ }
+ return MemNode::MemOrd::seqcst;
+ }
+
AccessAnalyzer::AccessAnalyzer(PhaseValues* phase, MemNode* n)
: _phase(phase), _n(n), _memory_size(n->memory_size()), _alias_idx(-1) {
Node* adr = _n->in(MemNode::Address);
_offset = 0;
_base = AddPNode::Ideal_base_and_offset(adr, _phase, _offset);
< prev index next >