src/share/vm/opto/graphKit.hpp

Print this page




 321   Node* OrI(Node* l, Node* r)                 { return _gvn.transform(new (C) OrINode(l, r));        }
 322   Node* XorI(Node* l, Node* r)                { return _gvn.transform(new (C) XorINode(l, r));       }
 323 
 324   Node* MaxI(Node* l, Node* r)                { return _gvn.transform(new (C) MaxINode(l, r));       }
 325   Node* MinI(Node* l, Node* r)                { return _gvn.transform(new (C) MinINode(l, r));       }
 326 
 327   Node* LShiftI(Node* l, Node* r)             { return _gvn.transform(new (C) LShiftINode(l, r));    }
 328   Node* RShiftI(Node* l, Node* r)             { return _gvn.transform(new (C) RShiftINode(l, r));    }
 329   Node* URShiftI(Node* l, Node* r)            { return _gvn.transform(new (C) URShiftINode(l, r));   }
 330 
 331   Node* CmpI(Node* l, Node* r)                { return _gvn.transform(new (C) CmpINode(l, r));       }
 332   Node* CmpL(Node* l, Node* r)                { return _gvn.transform(new (C) CmpLNode(l, r));       }
 333   Node* CmpP(Node* l, Node* r)                { return _gvn.transform(new (C) CmpPNode(l, r));       }
 334   Node* Bool(Node* cmp, BoolTest::mask relop) { return _gvn.transform(new (C) BoolNode(cmp, relop)); }
 335 
 336   Node* AddP(Node* b, Node* a, Node* o)       { return _gvn.transform(new (C) AddPNode(b, a, o));    }
 337 
 338   // Convert between int and long, and size_t.
 339   // (See macros ConvI2X, etc., in type.hpp for ConvI2X, etc.)
 340   Node* ConvI2L(Node* offset);

 341   Node* ConvL2I(Node* offset);
 342   // Find out the klass of an object.
 343   Node* load_object_klass(Node* object);
 344   // Find out the length of an array.
 345   Node* load_array_length(Node* array);
 346 
 347 
 348   // Helper function to do a NULL pointer check or ZERO check based on type.
 349   // Throw an exception if a given value is null.
 350   // Return the value cast to not-null.
 351   // Be clever about equivalent dominating null checks.
 352   Node* null_check_common(Node* value, BasicType type,
 353                           bool assert_null = false, Node* *null_control = NULL);
 354   Node* null_check(Node* value, BasicType type = T_OBJECT) {
 355     return null_check_common(value, type);
 356   }
 357   Node* null_check_receiver() {
 358     assert(argument(0)->bottom_type()->isa_ptr(), "must be");
 359     return null_check(argument(0));
 360   }




 321   Node* OrI(Node* l, Node* r)                 { return _gvn.transform(new (C) OrINode(l, r));        }
 322   Node* XorI(Node* l, Node* r)                { return _gvn.transform(new (C) XorINode(l, r));       }
 323 
 324   Node* MaxI(Node* l, Node* r)                { return _gvn.transform(new (C) MaxINode(l, r));       }
 325   Node* MinI(Node* l, Node* r)                { return _gvn.transform(new (C) MinINode(l, r));       }
 326 
 327   Node* LShiftI(Node* l, Node* r)             { return _gvn.transform(new (C) LShiftINode(l, r));    }
 328   Node* RShiftI(Node* l, Node* r)             { return _gvn.transform(new (C) RShiftINode(l, r));    }
 329   Node* URShiftI(Node* l, Node* r)            { return _gvn.transform(new (C) URShiftINode(l, r));   }
 330 
 331   Node* CmpI(Node* l, Node* r)                { return _gvn.transform(new (C) CmpINode(l, r));       }
 332   Node* CmpL(Node* l, Node* r)                { return _gvn.transform(new (C) CmpLNode(l, r));       }
 333   Node* CmpP(Node* l, Node* r)                { return _gvn.transform(new (C) CmpPNode(l, r));       }
 334   Node* Bool(Node* cmp, BoolTest::mask relop) { return _gvn.transform(new (C) BoolNode(cmp, relop)); }
 335 
 336   Node* AddP(Node* b, Node* a, Node* o)       { return _gvn.transform(new (C) AddPNode(b, a, o));    }
 337 
 338   // Convert between int and long, and size_t.
 339   // (See macros ConvI2X, etc., in type.hpp for ConvI2X, etc.)
 340   Node* ConvI2L(Node* offset);
 341   Node* ConvI2UL(Node* offset);
 342   Node* ConvL2I(Node* offset);
 343   // Find out the klass of an object.
 344   Node* load_object_klass(Node* object);
 345   // Find out the length of an array.
 346   Node* load_array_length(Node* array);
 347 
 348 
 349   // Helper function to do a NULL pointer check or ZERO check based on type.
 350   // Throw an exception if a given value is null.
 351   // Return the value cast to not-null.
 352   // Be clever about equivalent dominating null checks.
 353   Node* null_check_common(Node* value, BasicType type,
 354                           bool assert_null = false, Node* *null_control = NULL);
 355   Node* null_check(Node* value, BasicType type = T_OBJECT) {
 356     return null_check_common(value, type);
 357   }
 358   Node* null_check_receiver() {
 359     assert(argument(0)->bottom_type()->isa_ptr(), "must be");
 360     return null_check(argument(0));
 361   }