src/hotspot/share/opto/graphKit.cpp
changeset 59025 b398685dd029
parent 58961 5d462d4b7a8b
equal deleted inserted replaced
59024:b046ba510bbc 59025:b398685dd029
  1491                           MemNode::MemOrd mo,
  1491                           MemNode::MemOrd mo,
  1492                           LoadNode::ControlDependency control_dependency,
  1492                           LoadNode::ControlDependency control_dependency,
  1493                           bool require_atomic_access,
  1493                           bool require_atomic_access,
  1494                           bool unaligned,
  1494                           bool unaligned,
  1495                           bool mismatched,
  1495                           bool mismatched,
  1496                           bool unsafe) {
  1496                           bool unsafe,
       
  1497                           uint8_t barrier_data) {
  1497   assert(adr_idx != Compile::AliasIdxTop, "use other make_load factory" );
  1498   assert(adr_idx != Compile::AliasIdxTop, "use other make_load factory" );
  1498   const TypePtr* adr_type = NULL; // debug-mode-only argument
  1499   const TypePtr* adr_type = NULL; // debug-mode-only argument
  1499   debug_only(adr_type = C->get_adr_type(adr_idx));
  1500   debug_only(adr_type = C->get_adr_type(adr_idx));
  1500   Node* mem = memory(adr_idx);
  1501   Node* mem = memory(adr_idx);
  1501   Node* ld;
  1502   Node* ld;
  1502   if (require_atomic_access && bt == T_LONG) {
  1503   if (require_atomic_access && bt == T_LONG) {
  1503     ld = LoadLNode::make_atomic(ctl, mem, adr, adr_type, t, mo, control_dependency, unaligned, mismatched, unsafe);
  1504     ld = LoadLNode::make_atomic(ctl, mem, adr, adr_type, t, mo, control_dependency, unaligned, mismatched, unsafe, barrier_data);
  1504   } else if (require_atomic_access && bt == T_DOUBLE) {
  1505   } else if (require_atomic_access && bt == T_DOUBLE) {
  1505     ld = LoadDNode::make_atomic(ctl, mem, adr, adr_type, t, mo, control_dependency, unaligned, mismatched, unsafe);
  1506     ld = LoadDNode::make_atomic(ctl, mem, adr, adr_type, t, mo, control_dependency, unaligned, mismatched, unsafe, barrier_data);
  1506   } else {
  1507   } else {
  1507     ld = LoadNode::make(_gvn, ctl, mem, adr, adr_type, t, bt, mo, control_dependency, unaligned, mismatched, unsafe);
  1508     ld = LoadNode::make(_gvn, ctl, mem, adr, adr_type, t, bt, mo, control_dependency, unaligned, mismatched, unsafe, barrier_data);
  1508   }
  1509   }
  1509   ld = _gvn.transform(ld);
  1510   ld = _gvn.transform(ld);
  1510   if (((bt == T_OBJECT) && C->do_escape_analysis()) || C->eliminate_boxing()) {
  1511   if (((bt == T_OBJECT) && C->do_escape_analysis()) || C->eliminate_boxing()) {
  1511     // Improve graph before escape analysis and boxing elimination.
  1512     // Improve graph before escape analysis and boxing elimination.
  1512     record_for_igvn(ld);
  1513     record_for_igvn(ld);