8330106: C2: VectorInsertNode::make() shouldn't call ConINode::make() directly

Reviewed-by: kvn, thartmann
This commit is contained in:
Roland Westrelin 2024-04-12 07:17:27 +00:00
parent e45fea5a80
commit bde3fc0c03
3 changed files with 4 additions and 4 deletions

View File

@ -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);

View File

@ -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());
}

View File

@ -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 {