Mercurial > hg > truffle
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 } |