8330106: C2: VectorInsertNode::make() shouldn't call ConINode::make() directly
Reviewed-by: kvn, thartmann
This commit is contained in:
parent
e45fea5a80
commit
bde3fc0c03
@ -2696,7 +2696,7 @@ bool LibraryCallKit::inline_vector_insert() {
|
||||
default: fatal("%s", type2name(elem_bt)); break;
|
||||
}
|
||||
|
||||
Node* operation = gvn().transform(VectorInsertNode::make(opd, insert_val, idx->get_con()));
|
||||
Node* operation = gvn().transform(VectorInsertNode::make(opd, insert_val, idx->get_con(), gvn()));
|
||||
|
||||
Node* vbox = box_vector(operation, vbox_type, elem_bt, num_elem);
|
||||
set_result(vbox);
|
||||
|
@ -1676,9 +1676,9 @@ Node* VectorReinterpretNode::Identity(PhaseGVN *phase) {
|
||||
return this;
|
||||
}
|
||||
|
||||
Node* VectorInsertNode::make(Node* vec, Node* new_val, int position) {
|
||||
Node* VectorInsertNode::make(Node* vec, Node* new_val, int position, PhaseGVN& gvn) {
|
||||
assert(position < (int)vec->bottom_type()->is_vect()->length(), "pos in range");
|
||||
ConINode* pos = ConINode::make(position);
|
||||
ConINode* pos = gvn.intcon(position);
|
||||
return new VectorInsertNode(vec, new_val, pos, vec->bottom_type()->is_vect());
|
||||
}
|
||||
|
||||
|
@ -1688,7 +1688,7 @@ class VectorInsertNode : public VectorNode {
|
||||
virtual int Opcode() const;
|
||||
uint pos() const { return in(3)->get_int(); }
|
||||
|
||||
static Node* make(Node* vec, Node* new_val, int position);
|
||||
static Node* make(Node* vec, Node* new_val, int position, PhaseGVN& gvn);
|
||||
};
|
||||
|
||||
class VectorBoxNode : public Node {
|
||||
|
Loading…
Reference in New Issue
Block a user