comparison src/share/vm/opto/graphKit.hpp @ 6804:e626685e9f6c

7193318: C2: remove number of inputs requirement from Node's new operator Summary: Deleted placement new operator of Node - node(size_t, Compile *, int). Reviewed-by: kvn, twisti Contributed-by: bharadwaj.yadavalli@oracle.com
author kvn
date Thu, 27 Sep 2012 09:38:42 -0700
parents da91efe96a93
children beebba0acc11
comparison
equal deleted inserted replaced
6803:06f52c4d0e18 6804:e626685e9f6c
301 } 301 }
302 Node* basic_plus_adr(Node* base, Node* ptr, Node* offset); 302 Node* basic_plus_adr(Node* base, Node* ptr, Node* offset);
303 303
304 304
305 // Some convenient shortcuts for common nodes 305 // Some convenient shortcuts for common nodes
306 Node* IfTrue(IfNode* iff) { return _gvn.transform(new (C,1) IfTrueNode(iff)); } 306 Node* IfTrue(IfNode* iff) { return _gvn.transform(new (C) IfTrueNode(iff)); }
307 Node* IfFalse(IfNode* iff) { return _gvn.transform(new (C,1) IfFalseNode(iff)); } 307 Node* IfFalse(IfNode* iff) { return _gvn.transform(new (C) IfFalseNode(iff)); }
308 308
309 Node* AddI(Node* l, Node* r) { return _gvn.transform(new (C,3) AddINode(l, r)); } 309 Node* AddI(Node* l, Node* r) { return _gvn.transform(new (C) AddINode(l, r)); }
310 Node* SubI(Node* l, Node* r) { return _gvn.transform(new (C,3) SubINode(l, r)); } 310 Node* SubI(Node* l, Node* r) { return _gvn.transform(new (C) SubINode(l, r)); }
311 Node* MulI(Node* l, Node* r) { return _gvn.transform(new (C,3) MulINode(l, r)); } 311 Node* MulI(Node* l, Node* r) { return _gvn.transform(new (C) MulINode(l, r)); }
312 Node* DivI(Node* ctl, Node* l, Node* r) { return _gvn.transform(new (C,3) DivINode(ctl, l, r)); } 312 Node* DivI(Node* ctl, Node* l, Node* r) { return _gvn.transform(new (C) DivINode(ctl, l, r)); }
313 313
314 Node* AndI(Node* l, Node* r) { return _gvn.transform(new (C,3) AndINode(l, r)); } 314 Node* AndI(Node* l, Node* r) { return _gvn.transform(new (C) AndINode(l, r)); }
315 Node* OrI(Node* l, Node* r) { return _gvn.transform(new (C,3) OrINode(l, r)); } 315 Node* OrI(Node* l, Node* r) { return _gvn.transform(new (C) OrINode(l, r)); }
316 Node* XorI(Node* l, Node* r) { return _gvn.transform(new (C,3) XorINode(l, r)); } 316 Node* XorI(Node* l, Node* r) { return _gvn.transform(new (C) XorINode(l, r)); }
317 317
318 Node* MaxI(Node* l, Node* r) { return _gvn.transform(new (C,3) MaxINode(l, r)); } 318 Node* MaxI(Node* l, Node* r) { return _gvn.transform(new (C) MaxINode(l, r)); }
319 Node* MinI(Node* l, Node* r) { return _gvn.transform(new (C,3) MinINode(l, r)); } 319 Node* MinI(Node* l, Node* r) { return _gvn.transform(new (C) MinINode(l, r)); }
320 320
321 Node* LShiftI(Node* l, Node* r) { return _gvn.transform(new (C,3) LShiftINode(l, r)); } 321 Node* LShiftI(Node* l, Node* r) { return _gvn.transform(new (C) LShiftINode(l, r)); }
322 Node* RShiftI(Node* l, Node* r) { return _gvn.transform(new (C,3) RShiftINode(l, r)); } 322 Node* RShiftI(Node* l, Node* r) { return _gvn.transform(new (C) RShiftINode(l, r)); }
323 Node* URShiftI(Node* l, Node* r) { return _gvn.transform(new (C,3) URShiftINode(l, r)); } 323 Node* URShiftI(Node* l, Node* r) { return _gvn.transform(new (C) URShiftINode(l, r)); }
324 324
325 Node* CmpI(Node* l, Node* r) { return _gvn.transform(new (C,3) CmpINode(l, r)); } 325 Node* CmpI(Node* l, Node* r) { return _gvn.transform(new (C) CmpINode(l, r)); }
326 Node* CmpL(Node* l, Node* r) { return _gvn.transform(new (C,3) CmpLNode(l, r)); } 326 Node* CmpL(Node* l, Node* r) { return _gvn.transform(new (C) CmpLNode(l, r)); }
327 Node* CmpP(Node* l, Node* r) { return _gvn.transform(new (C,3) CmpPNode(l, r)); } 327 Node* CmpP(Node* l, Node* r) { return _gvn.transform(new (C) CmpPNode(l, r)); }
328 Node* Bool(Node* cmp, BoolTest::mask relop) { return _gvn.transform(new (C,2) BoolNode(cmp, relop)); } 328 Node* Bool(Node* cmp, BoolTest::mask relop) { return _gvn.transform(new (C) BoolNode(cmp, relop)); }
329 329
330 Node* AddP(Node* b, Node* a, Node* o) { return _gvn.transform(new (C,4) AddPNode(b, a, o)); } 330 Node* AddP(Node* b, Node* a, Node* o) { return _gvn.transform(new (C) AddPNode(b, a, o)); }
331 331
332 // Convert between int and long, and size_t. 332 // Convert between int and long, and size_t.
333 // (See macros ConvI2X, etc., in type.hpp for ConvI2X, etc.) 333 // (See macros ConvI2X, etc., in type.hpp for ConvI2X, etc.)
334 Node* ConvI2L(Node* offset); 334 Node* ConvI2L(Node* offset);
335 Node* ConvL2I(Node* offset); 335 Node* ConvL2I(Node* offset);
790 void store_String_length(Node* ctrl, Node* str, Node* value); 790 void store_String_length(Node* ctrl, Node* str, Node* value);
791 void store_String_value(Node* ctrl, Node* str, Node* value); 791 void store_String_value(Node* ctrl, Node* str, Node* value);
792 792
793 // Handy for making control flow 793 // Handy for making control flow
794 IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) { 794 IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) {
795 IfNode* iff = new (C, 2) IfNode(ctrl, tst, prob, cnt);// New IfNode's 795 IfNode* iff = new (C) IfNode(ctrl, tst, prob, cnt);// New IfNode's
796 _gvn.set_type(iff, iff->Value(&_gvn)); // Value may be known at parse-time 796 _gvn.set_type(iff, iff->Value(&_gvn)); // Value may be known at parse-time
797 // Place 'if' on worklist if it will be in graph 797 // Place 'if' on worklist if it will be in graph
798 if (!tst->is_Con()) record_for_igvn(iff); // Range-check and Null-check removal is later 798 if (!tst->is_Con()) record_for_igvn(iff); // Range-check and Null-check removal is later
799 return iff; 799 return iff;
800 } 800 }
801 801
802 IfNode* create_and_xform_if(Node* ctrl, Node* tst, float prob, float cnt) { 802 IfNode* create_and_xform_if(Node* ctrl, Node* tst, float prob, float cnt) {
803 IfNode* iff = new (C, 2) IfNode(ctrl, tst, prob, cnt);// New IfNode's 803 IfNode* iff = new (C) IfNode(ctrl, tst, prob, cnt);// New IfNode's
804 _gvn.transform(iff); // Value may be known at parse-time 804 _gvn.transform(iff); // Value may be known at parse-time
805 // Place 'if' on worklist if it will be in graph 805 // Place 'if' on worklist if it will be in graph
806 if (!tst->is_Con()) record_for_igvn(iff); // Range-check and Null-check removal is later 806 if (!tst->is_Con()) record_for_igvn(iff); // Range-check and Null-check removal is later
807 return iff; 807 return iff;
808 } 808 }