Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8266388: C2: Improve constant ShiftCntV on x86 #3823

wants to merge 1 commit into from
Changes from all commits
File filter
Filter by extension
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -2119,6 +2119,10 @@ bool Matcher::pd_clone_node(Node* n, Node* m, Matcher::MStack& mstack) {
mstack.push(m, Visit);
return true;
if (is_vshift_con_pattern(n, m)) { // ShiftV src (ShiftCntV con)
mstack.push(m, Visit); // m = ShiftCntV
return true;
return false;

@@ -2033,7 +2033,7 @@ OptoReg::Name Matcher::find_receiver() {
return OptoReg::as_OptoReg(regs.first());

bool Matcher::is_vshift_con_pattern(Node *n, Node *m) {
bool Matcher::is_vshift_con_pattern(Node* n, Node* m) {
if (n != NULL && m != NULL) {
return VectorNode::is_vector_shift(n) &&
VectorNode::is_vector_shift_count(m) && m->in(1)->is_Con();
@@ -121,7 +121,7 @@ class Matcher : public PhaseTransform {
bool find_shared_visit(MStack& mstack, Node* n, uint opcode, bool& mem_op, int& mem_addr_idx);
void find_shared_post_visit(Node* n, uint opcode);

bool is_vshift_con_pattern(Node *n, Node *m);
bool is_vshift_con_pattern(Node* n, Node* m);

// Debug and profile information for nodes in old space:
GrowableArray<Node_Notes*>* _old_node_note_array;