Mercurial > hg > truffle
diff src/share/vm/opto/memnode.cpp @ 7957:0d26ce8e9251
Merge
author | acorn |
---|---|
date | Mon, 28 Jan 2013 10:34:07 -0500 |
parents | b30b3c2a0cf2 |
children | 6931f425c517 |
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.cpp Fri Jan 25 15:06:18 2013 -0500 +++ b/src/share/vm/opto/memnode.cpp Mon Jan 28 10:34:07 2013 -0500 @@ -2797,6 +2797,26 @@ } //============================================================================= +//------------------------------match_edge------------------------------------- +// Do not match memory edge +uint EncodeISOArrayNode::match_edge(uint idx) const { + return idx == 2 || idx == 3; // EncodeISOArray src (Binary dst len) +} + +//------------------------------Ideal------------------------------------------ +// Return a node which is more "ideal" than the current node. Strip out +// control copies +Node *EncodeISOArrayNode::Ideal(PhaseGVN *phase, bool can_reshape) { + return remove_dead_region(phase, can_reshape) ? this : NULL; +} + +//------------------------------Value------------------------------------------ +const Type *EncodeISOArrayNode::Value(PhaseTransform *phase) const { + if (in(0) && phase->type(in(0)) == Type::TOP) return Type::TOP; + return bottom_type(); +} + +//============================================================================= MemBarNode::MemBarNode(Compile* C, int alias_idx, Node* precedent) : MultiNode(TypeFunc::Parms + (precedent == NULL? 0: 1)), _adr_type(C->get_adr_type(alias_idx))