Lines Matching refs:ac

273 Node* PhaseMacroExpand::generate_arraycopy(ArrayCopyNode *ac, AllocateArrayNode* alloc,
506 bool skip_subtype_check = ac->is_arraycopy_validated() || ac->is_copyof_validated() ||
507 ac->is_copyofrange_validated() || ac->is_cloneoop();
510 Node* src_klass = ac->in(ArrayCopyNode::SrcKlass);
511 Node* dest_klass = ac->in(ArrayCopyNode::DestKlass);
666 local_mem = generate_slow_arraycopy(ac,
724 ArrayCopyNode* ac = NULL;
725 assert(ArrayCopyNode::may_modify(dest_t, (*ctrl)->in(0)->as_MemBar(), &_igvn, ac), "dependency on arraycopy lost");
726 assert(ac == NULL, "no arraycopy anymore");
931 MergeMemNode* PhaseMacroExpand::generate_slow_arraycopy(ArrayCopyNode *ac,
942 ac->jvms()->bci(), TypePtr::BOTTOM);
954 copy_call_debug_info(ac, call);
957 _igvn.replace_node(ac, call);
1078 void PhaseMacroExpand::expand_arraycopy_node(ArrayCopyNode *ac) {
1079 Node* ctrl = ac->in(TypeFunc::Control);
1080 Node* io = ac->in(TypeFunc::I_O);
1081 Node* src = ac->in(ArrayCopyNode::Src);
1082 Node* src_offset = ac->in(ArrayCopyNode::SrcPos);
1083 Node* dest = ac->in(ArrayCopyNode::Dest);
1084 Node* dest_offset = ac->in(ArrayCopyNode::DestPos);
1085 Node* length = ac->in(ArrayCopyNode::Length);
1088 if (ac->is_clonebasic()) {
1090 Node* mem = ac->in(TypeFunc::Memory);
1102 _igvn.replace_node(ac, call);
1104 } else if (ac->is_copyof() || ac->is_copyofrange() || ac->is_cloneoop()) {
1105 Node* mem = ac->in(TypeFunc::Memory);
1113 if (ac->is_alloc_tightly_coupled()) {
1119 if (ac->_dest_type != TypeOopPtr::BOTTOM) {
1120 adr_type = ac->_dest_type->add_offset(Type::OffsetBot)->is_ptr();
1122 if (ac->_src_type != ac->_dest_type) {
1125 generate_arraycopy(ac, alloc, &ctrl, merge_mem, &io,
1128 true, !ac->is_copyofrange());
1134 if (ac->is_alloc_tightly_coupled()) {
1139 assert(ac->is_arraycopy() || ac->is_arraycopy_validated(), "should be an arraycopy");
1163 if (ac->is_arraycopy_validated() &&
1173 Node* mem = ac->in(TypeFunc::Memory);
1181 Node* mem = generate_arraycopy(ac, NULL, &ctrl, merge_mem, &io,
1186 false, ac->has_negative_length_guard());
1199 assert(!ac->is_arraycopy_validated() || (src_elem == dest_elem && dest_elem != T_VOID), "validated but different basic types");
1207 Node* mem = ac->in(TypeFunc::Memory);
1208 merge_mem = generate_slow_arraycopy(ac, &ctrl, mem, &io, TypePtr::BOTTOM, src, src_offset, dest, dest_offset, length, false);
1231 Node* mem = ac->in(TypeFunc::Memory);
1239 if (!ac->is_arraycopy_validated()) {
1258 Node* alen = ac->in(ArrayCopyNode::SrcLen);
1266 alen = ac->in(ArrayCopyNode::DestLen);
1278 if (ac->_dest_type != TypeOopPtr::BOTTOM) {
1279 adr_type = ac->_dest_type->add_offset(Type::OffsetBot)->is_ptr();
1281 if (ac->_src_type != ac->_dest_type) {
1285 generate_arraycopy(ac, alloc, &ctrl, merge_mem, &io,
1290 false, ac->has_negative_length_guard(), slow_region);