Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/node.hpp @ 14422:2b8e28fdf503
Merge
author | kvn |
---|---|
date | Tue, 05 Nov 2013 17:38:04 -0800 |
parents | 59e8ad757e19 |
children | 044b28168e20 085b304a1cc5 |
comparison
equal
deleted
inserted
replaced
14421:3068270ba476 | 14422:2b8e28fdf503 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
67 class EncodeNarrowPtrNode; | 67 class EncodeNarrowPtrNode; |
68 class EncodePNode; | 68 class EncodePNode; |
69 class EncodePKlassNode; | 69 class EncodePKlassNode; |
70 class FastLockNode; | 70 class FastLockNode; |
71 class FastUnlockNode; | 71 class FastUnlockNode; |
72 class FlagsProjNode; | |
72 class IfNode; | 73 class IfNode; |
73 class IfFalseNode; | 74 class IfFalseNode; |
74 class IfTrueNode; | 75 class IfTrueNode; |
75 class InitializeNode; | 76 class InitializeNode; |
76 class JVMState; | 77 class JVMState; |
97 class MachReturnNode; | 98 class MachReturnNode; |
98 class MachSafePointNode; | 99 class MachSafePointNode; |
99 class MachSpillCopyNode; | 100 class MachSpillCopyNode; |
100 class MachTempNode; | 101 class MachTempNode; |
101 class Matcher; | 102 class Matcher; |
103 class MathExactNode; | |
102 class MemBarNode; | 104 class MemBarNode; |
103 class MemBarStoreStoreNode; | 105 class MemBarStoreStoreNode; |
104 class MemNode; | 106 class MemNode; |
105 class MergeMemNode; | 107 class MergeMemNode; |
106 class MulNode; | 108 class MulNode; |
209 // field is a local cache of a value defined in some "program fragment" for | 211 // field is a local cache of a value defined in some "program fragment" for |
210 // which these Nodes are just a part of. | 212 // which these Nodes are just a part of. |
211 | 213 |
212 // New Operator that takes a Compile pointer, this will eventually | 214 // New Operator that takes a Compile pointer, this will eventually |
213 // be the "new" New operator. | 215 // be the "new" New operator. |
214 inline void* operator new( size_t x, Compile* C) { | 216 inline void* operator new( size_t x, Compile* C) throw() { |
215 Node* n = (Node*)C->node_arena()->Amalloc_D(x); | 217 Node* n = (Node*)C->node_arena()->Amalloc_D(x); |
216 #ifdef ASSERT | 218 #ifdef ASSERT |
217 n->_in = (Node**)n; // magic cookie for assertion check | 219 n->_in = (Node**)n; // magic cookie for assertion check |
218 #endif | 220 #endif |
219 n->_out = (Node**)C; | 221 n->_out = (Node**)C; |
382 | 384 |
383 // Set a required input edge, also updates corresponding output edge | 385 // Set a required input edge, also updates corresponding output edge |
384 void add_req( Node *n ); // Append a NEW required input | 386 void add_req( Node *n ); // Append a NEW required input |
385 void add_req_batch( Node* n, uint m ); // Append m NEW required inputs (all n). | 387 void add_req_batch( Node* n, uint m ); // Append m NEW required inputs (all n). |
386 void del_req( uint idx ); // Delete required edge & compact | 388 void del_req( uint idx ); // Delete required edge & compact |
389 void del_req_ordered( uint idx ); // Delete required edge & compact with preserved order | |
387 void ins_req( uint i, Node *n ); // Insert a NEW required input | 390 void ins_req( uint i, Node *n ); // Insert a NEW required input |
388 void set_req( uint i, Node *n ) { | 391 void set_req( uint i, Node *n ) { |
389 assert( is_not_dead(n), "can not use dead node"); | 392 assert( is_not_dead(n), "can not use dead node"); |
390 assert( i < _cnt, err_msg_res("oob: i=%d, _cnt=%d", i, _cnt)); | 393 assert( i < _cnt, err_msg_res("oob: i=%d, _cnt=%d", i, _cnt)); |
391 assert( !VerifyHashTableKeys || _hash_lock == 0, | 394 assert( !VerifyHashTableKeys || _hash_lock == 0, |
564 DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2) | 567 DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2) |
565 DEFINE_CLASS_ID(Start, Multi, 2) | 568 DEFINE_CLASS_ID(Start, Multi, 2) |
566 DEFINE_CLASS_ID(MemBar, Multi, 3) | 569 DEFINE_CLASS_ID(MemBar, Multi, 3) |
567 DEFINE_CLASS_ID(Initialize, MemBar, 0) | 570 DEFINE_CLASS_ID(Initialize, MemBar, 0) |
568 DEFINE_CLASS_ID(MemBarStoreStore, MemBar, 1) | 571 DEFINE_CLASS_ID(MemBarStoreStore, MemBar, 1) |
572 DEFINE_CLASS_ID(MathExact, Multi, 4) | |
569 | 573 |
570 DEFINE_CLASS_ID(Mach, Node, 1) | 574 DEFINE_CLASS_ID(Mach, Node, 1) |
571 DEFINE_CLASS_ID(MachReturn, Mach, 0) | 575 DEFINE_CLASS_ID(MachReturn, Mach, 0) |
572 DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0) | 576 DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0) |
573 DEFINE_CLASS_ID(MachCall, MachSafePoint, 0) | 577 DEFINE_CLASS_ID(MachCall, MachSafePoint, 0) |
620 | 624 |
621 DEFINE_CLASS_ID(Sub, Node, 6) | 625 DEFINE_CLASS_ID(Sub, Node, 6) |
622 DEFINE_CLASS_ID(Cmp, Sub, 0) | 626 DEFINE_CLASS_ID(Cmp, Sub, 0) |
623 DEFINE_CLASS_ID(FastLock, Cmp, 0) | 627 DEFINE_CLASS_ID(FastLock, Cmp, 0) |
624 DEFINE_CLASS_ID(FastUnlock, Cmp, 1) | 628 DEFINE_CLASS_ID(FastUnlock, Cmp, 1) |
629 DEFINE_CLASS_ID(FlagsProj, Cmp, 2) | |
625 | 630 |
626 DEFINE_CLASS_ID(MergeMem, Node, 7) | 631 DEFINE_CLASS_ID(MergeMem, Node, 7) |
627 DEFINE_CLASS_ID(Bool, Node, 8) | 632 DEFINE_CLASS_ID(Bool, Node, 8) |
628 DEFINE_CLASS_ID(AddP, Node, 9) | 633 DEFINE_CLASS_ID(AddP, Node, 9) |
629 DEFINE_CLASS_ID(BoxLock, Node, 10) | 634 DEFINE_CLASS_ID(BoxLock, Node, 10) |
723 DEFINE_CLASS_QUERY(EncodeNarrowPtr) | 728 DEFINE_CLASS_QUERY(EncodeNarrowPtr) |
724 DEFINE_CLASS_QUERY(EncodeP) | 729 DEFINE_CLASS_QUERY(EncodeP) |
725 DEFINE_CLASS_QUERY(EncodePKlass) | 730 DEFINE_CLASS_QUERY(EncodePKlass) |
726 DEFINE_CLASS_QUERY(FastLock) | 731 DEFINE_CLASS_QUERY(FastLock) |
727 DEFINE_CLASS_QUERY(FastUnlock) | 732 DEFINE_CLASS_QUERY(FastUnlock) |
733 DEFINE_CLASS_QUERY(FlagsProj) | |
728 DEFINE_CLASS_QUERY(If) | 734 DEFINE_CLASS_QUERY(If) |
729 DEFINE_CLASS_QUERY(IfFalse) | 735 DEFINE_CLASS_QUERY(IfFalse) |
730 DEFINE_CLASS_QUERY(IfTrue) | 736 DEFINE_CLASS_QUERY(IfTrue) |
731 DEFINE_CLASS_QUERY(Initialize) | 737 DEFINE_CLASS_QUERY(Initialize) |
732 DEFINE_CLASS_QUERY(Jump) | 738 DEFINE_CLASS_QUERY(Jump) |
751 DEFINE_CLASS_QUERY(MachProj) | 757 DEFINE_CLASS_QUERY(MachProj) |
752 DEFINE_CLASS_QUERY(MachReturn) | 758 DEFINE_CLASS_QUERY(MachReturn) |
753 DEFINE_CLASS_QUERY(MachSafePoint) | 759 DEFINE_CLASS_QUERY(MachSafePoint) |
754 DEFINE_CLASS_QUERY(MachSpillCopy) | 760 DEFINE_CLASS_QUERY(MachSpillCopy) |
755 DEFINE_CLASS_QUERY(MachTemp) | 761 DEFINE_CLASS_QUERY(MachTemp) |
762 DEFINE_CLASS_QUERY(MathExact) | |
756 DEFINE_CLASS_QUERY(Mem) | 763 DEFINE_CLASS_QUERY(Mem) |
757 DEFINE_CLASS_QUERY(MemBar) | 764 DEFINE_CLASS_QUERY(MemBar) |
758 DEFINE_CLASS_QUERY(MemBarStoreStore) | 765 DEFINE_CLASS_QUERY(MemBarStoreStore) |
759 DEFINE_CLASS_QUERY(MergeMem) | 766 DEFINE_CLASS_QUERY(MergeMem) |
760 DEFINE_CLASS_QUERY(Mul) | 767 DEFINE_CLASS_QUERY(Mul) |