Skip to content

[KeyInstr] Enable Key Instructions support in LLVM #144324

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

OCHyams
Copy link
Contributor

@OCHyams OCHyams commented Jun 16, 2025

Set LLVM_EXPERIMENTAL_KEY_INSTRUCTIONS=ON by default. This enables support for Key Instructions in LLVM by default, it does not enable the feature by default.

This does have an affect on compile time, which looks to have mostly been "paid for" (if that argument stands) by my PR #143399.

From compile-time-tracker:

  1. this patch
  2. PR [NFC][DebugInfo] Make MDNodeKeyImpl<DILocation>::Column 16 bits #143399
  3. base
    Commit  stage1-O3  stage1-ReleaseThinLTO  stage1-ReleaseLTO-g  stage1-O0-g  stage1-aarch64-O3  stage1-aarch64-O0-g  stage2-O3      stage2-O0-g      stage2-clang
        1.  61213M (+0.02%)  77397M (+0.01%)  89413M (+0.08%)  18865M (+0.13%)  68670M (+0.01%)  23100M (+0.12%)  53409M (+0.00%)  16550M (+0.20%)  34060797M (+0.02%)
	2.  61201M (-0.01%)  77389M (+0.00%)  89343M (-0.06%)  18841M (-0.16%)  68666M (+0.00%)  23073M (-0.16%)  53408M (-0.01%)  16518M (+0.01%)  34054978M (+0.00%)
	3.  61207M (+0.00%)  77386M (-0.01%)  89396M (-0.02%)  18871M (-0.02%)  68665M (+0.01%)  23109M (+0.02%)  53415M (-0.02%)  16516M (-0.00%)  34054300M (-0.00%)

Compare 2-1: https://llvm-compile-time-tracker.com/compare.php?from=89490929c34f45842df1588cf78d836f51c2c222&to=7d00712c28bbcc8a8e00d672f2f7c109fb5823c9&stat=instructions%3Au
Compare 3-2: https://llvm-compile-time-tracker.com/compare.php?from=2b7b0e178259a910355631d7d648c89052000872&to=89490929c34f45842df1588cf78d836f51c2c222&stat=instructions%3Au

Set LLVM_EXPERIMENTAL_KEY_INSTRUCTIONS=ON by default. This enables support for
Key Instructions in LLVM by default, it does not enable the feature by default.

This does have an affect on compile time, which looks to have mostly been
"paid for" (if that argument stands) by my PR llvm#143399.

From compile-time-tracker:

1. this patch
2. PR llvm#143399
3. base
```
    Commit  stage1-O3  stage1-ReleaseThinLTO  stage1-ReleaseLTO-g  stage1-O0-g  stage1-aarch64-O3  stage1-aarch64-O0-g  stage2-O3      stage2-O0-g      stage2-clang
        1.  61213M (+0.02%)  77397M (+0.01%)  89413M (+0.08%)  18865M (+0.13%)  68670M (+0.01%)  23100M (+0.12%)  53409M (+0.00%)  16550M (+0.20%)  34060797M (+0.02%)
	2.  61201M (-0.01%)  77389M (+0.00%)  89343M (-0.06%)  18841M (-0.16%)  68666M (+0.00%)  23073M (-0.16%)  53408M (-0.01%)  16518M (+0.01%)  34054978M (+0.00%)
	3.  61207M (+0.00%)  77386M (-0.01%)  89396M (-0.02%)  18871M (-0.02%)  68665M (+0.01%)  23109M (+0.02%)  53415M (-0.02%)  16516M (-0.00%)  34054300M (-0.00%)
```

Compare 2-1: https://llvm-compile-time-tracker.com/compare.php?from=89490929c34f45842df1588cf78d836f51c2c222&to=7d00712c28bbcc8a8e00d672f2f7c109fb5823c9&stat=instructions%3Au
Compare 3-2: https://llvm-compile-time-tracker.com/compare.php?from=2b7b0e178259a910355631d7d648c89052000872&to=89490929c34f45842df1588cf78d836f51c2c222&stat=instructions%3Au
@OCHyams OCHyams requested review from nikic, jmorse and SLTozer June 16, 2025 10:05
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