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

Add AArch64 public CI. #2

Closed
wants to merge 1 commit into from
Closed

Add AArch64 public CI. #2

wants to merge 1 commit into from

Conversation

XiaohongGong
Copy link
Owner

No description provided.

sanzinger pushed a commit that referenced this pull request Jan 7, 2020
We want to find a better way to implement array offset calculation.
The old pattern for an int array member loading is:
       and      x4, x3, #0xffffffff
       lsl      x4, x4, #2
       add      x4, x4, #0x10
       ldr      x0, [x2, x4]

And the optimized pattern is:
       add      x1, x2, w3, uxtw #2
       ldr      x0, [x1, oracle#16]

Here is a jmh unit test for int array member loading:
    private final int func(int[] arr) {
        int ret = 0;
        for (int i=0; i < field0; i++) {
            ret += arr[i];
        }
        return ret;
    }
And the jmh performance results:
     without this patch   with this patch   units
         1173501.595        948290.420      us/op

Here are the additional issues fixed related to this patch:
1. Fix an issue in MatchProcessor, so that we can process platform specific node
as a matchable node.

2. Close this optimization for substratevm because the derived reference is not
supported yet in SVM.

mx bootstrap passes.
mx gate -o -t 'CTW:hosted' passes.

Change-Id: Ia34f2bf044ca6863be075cf000b29524ca44c42d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant