488 add_local_var_and_edge(n, PointsToNode::GlobalEscape, |
488 add_local_var_and_edge(n, PointsToNode::GlobalEscape, |
489 n->in(TypeFunc::Parms), delayed_worklist); |
489 n->in(TypeFunc::Parms), delayed_worklist); |
490 } |
490 } |
491 break; |
491 break; |
492 } |
492 } |
|
493 case Op_CompareAndExchangeP: |
|
494 case Op_CompareAndExchangeN: |
493 case Op_GetAndSetP: |
495 case Op_GetAndSetP: |
494 case Op_GetAndSetN: { |
496 case Op_GetAndSetN: { |
495 add_objload_to_connection_graph(n, delayed_worklist); |
497 add_objload_to_connection_graph(n, delayed_worklist); |
496 // fallthrough |
498 // fallthrough |
497 } |
499 } |
498 case Op_StoreP: |
500 case Op_StoreP: |
499 case Op_StoreN: |
501 case Op_StoreN: |
500 case Op_StoreNKlass: |
502 case Op_StoreNKlass: |
501 case Op_StorePConditional: |
503 case Op_StorePConditional: |
|
504 case Op_WeakCompareAndSwapP: |
|
505 case Op_WeakCompareAndSwapN: |
502 case Op_CompareAndSwapP: |
506 case Op_CompareAndSwapP: |
503 case Op_CompareAndSwapN: { |
507 case Op_CompareAndSwapN: { |
504 Node* adr = n->in(MemNode::Address); |
508 Node* adr = n->in(MemNode::Address); |
505 const Type *adr_type = igvn->type(adr); |
509 const Type *adr_type = igvn->type(adr); |
506 adr_type = adr_type->make_ptr(); |
510 adr_type = adr_type->make_ptr(); |
696 } |
700 } |
697 case Op_StoreP: |
701 case Op_StoreP: |
698 case Op_StoreN: |
702 case Op_StoreN: |
699 case Op_StoreNKlass: |
703 case Op_StoreNKlass: |
700 case Op_StorePConditional: |
704 case Op_StorePConditional: |
|
705 case Op_CompareAndExchangeP: |
|
706 case Op_CompareAndExchangeN: |
701 case Op_CompareAndSwapP: |
707 case Op_CompareAndSwapP: |
702 case Op_CompareAndSwapN: |
708 case Op_CompareAndSwapN: |
|
709 case Op_WeakCompareAndSwapP: |
|
710 case Op_WeakCompareAndSwapN: |
703 case Op_GetAndSetP: |
711 case Op_GetAndSetP: |
704 case Op_GetAndSetN: { |
712 case Op_GetAndSetN: { |
705 Node* adr = n->in(MemNode::Address); |
713 Node* adr = n->in(MemNode::Address); |
706 const Type *adr_type = _igvn->type(adr); |
714 const Type *adr_type = _igvn->type(adr); |
707 adr_type = adr_type->make_ptr(); |
715 adr_type = adr_type->make_ptr(); |