< prev index next >

src/hotspot/share/opto/vectornode.cpp

Print this page




1002       Matcher::vector_size_supported(bt, vlen)) {
1003     int vopc = ReductionNode::opcode(opc, bt);
1004     return vopc != opc && Matcher::match_rule_supported(vopc);
1005   }
1006   return false;
1007 }
1008 
1009 #ifndef PRODUCT
1010 void VectorBoxAllocateNode::dump_spec(outputStream *st) const {
1011   CallStaticJavaNode::dump_spec(st);
1012 }
1013 
1014 void VectorMaskCmpNode::dump_spec(outputStream *st) const {
1015   st->print(" %d #", _predicate); _type->dump_on(st);
1016 }
1017 #endif // PRODUCT
1018 
1019 Node* VectorUnboxNode::Identity(PhaseGVN *phase) {
1020   Node* n = obj()->uncast();
1021   if (n->Opcode() == Op_VectorBox) {

1022     return n->in(VectorBoxNode::Value);

1023   }
1024   return this;
1025 }
1026 
1027 Node* VectorReinterpretNode::Identity(PhaseGVN *phase) {
1028   Node* n = in(1);
1029   if (n->Opcode() == Op_VectorReinterpret) {
1030     if (Type::cmp(bottom_type(), n->in(1)->bottom_type()) == 0) {
1031       return n->in(1);
1032     }
1033   }
1034   return this;
1035 }
1036 
1037 const TypeFunc* VectorBoxNode::vec_box_type(const TypeInstPtr* box_type) {
1038   const Type** fields = TypeTuple::fields(0);
1039   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms, fields);
1040 
1041   fields = TypeTuple::fields(1);
1042   fields[TypeFunc::Parms+0] = box_type;




1002       Matcher::vector_size_supported(bt, vlen)) {
1003     int vopc = ReductionNode::opcode(opc, bt);
1004     return vopc != opc && Matcher::match_rule_supported(vopc);
1005   }
1006   return false;
1007 }
1008 
1009 #ifndef PRODUCT
1010 void VectorBoxAllocateNode::dump_spec(outputStream *st) const {
1011   CallStaticJavaNode::dump_spec(st);
1012 }
1013 
1014 void VectorMaskCmpNode::dump_spec(outputStream *st) const {
1015   st->print(" %d #", _predicate); _type->dump_on(st);
1016 }
1017 #endif // PRODUCT
1018 
1019 Node* VectorUnboxNode::Identity(PhaseGVN *phase) {
1020   Node* n = obj()->uncast();
1021   if (n->Opcode() == Op_VectorBox) {
1022     if (Type::cmp(bottom_type(), n->in(VectorBoxNode::Value)->bottom_type()) == 0) {
1023       return n->in(VectorBoxNode::Value);
1024     }
1025   }
1026   return this;
1027 }
1028 
1029 Node* VectorReinterpretNode::Identity(PhaseGVN *phase) {
1030   Node* n = in(1);
1031   if (n->Opcode() == Op_VectorReinterpret) {
1032     if (Type::cmp(bottom_type(), n->in(1)->bottom_type()) == 0) {
1033       return n->in(1);
1034     }
1035   }
1036   return this;
1037 }
1038 
1039 const TypeFunc* VectorBoxNode::vec_box_type(const TypeInstPtr* box_type) {
1040   const Type** fields = TypeTuple::fields(0);
1041   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms, fields);
1042 
1043   fields = TypeTuple::fields(1);
1044   fields[TypeFunc::Parms+0] = box_type;


< prev index next >