-
Notifications
You must be signed in to change notification settings - Fork 77
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
Improved ARM64 code generation (port upstream PR#9937) #556
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ions Now we recognize the full set of hardware supported immediate operands. `is_logical_immediate` was moved from Selection to Arch and made to work on nativeints. This is in preparation for future use in Emit.
Add a special case for immediates that can be loaded in one "or" instruction. Refactor the code that produces sequences of movz/movn/movk to be less redundant and to choose the shortest sequence between the "movz" sequence and the "movn" sequence.
xclerc
approved these changes
Mar 16, 2022
lthls
added a commit
that referenced
this pull request
Mar 22, 2022
lpw25
added a commit
that referenced
this pull request
May 19, 2022
fe8a98b flambda-backend: Save Mach as Cfg after Selection (#624) 2b205d8 flambda-backend: Clean up algorithms (#611) 524f0b4 flambda-backend: Initial refactoring of To_cmm (#619) 0bf75de flambda-backend: Refactor and correct the "is pure" and "can raise" (port upstream PR#10354 and PR#10387) (#555) d234bfd flambda-backend: Cpp mangling is now a configuration option (#614) 20fc614 flambda-backend: Check that stack frames are not too large (#10085) (#561) 5fc2e95 flambda-backend: Allow CSE of immutable loads across stores (port upstream PR#9562) (#562) 2a650de flambda-backend: Backport commit fc95347 from trunk (#584) 31651b8 flambda-backend: Improved ARM64 code generation (port upstream PR#9937) (#556) f0b6d68 flambda-backend: Simplify processing and remove dead code (error paths) in asmlink (port upstream PR#9943) (#557) 90c6746 flambda-backend: Improve code-generation for inlined comparisons (port upstream PR#10228) (#563) git-subtree-dir: ocaml git-subtree-split: fe8a98b
mshinwell
pushed a commit
that referenced
this pull request
May 20, 2022
* ARM64: improve recognition of immediate operands for logical instructions Now we recognize the full set of hardware supported immediate operands. `is_logical_immediate` was moved from Selection to Arch and made to work on nativeints. This is in preparation for future use in Emit. * ARM64: Improve code generation for load integer immediate Add a special case for immediates that can be loaded in one "or" instruction. Refactor the code that produces sequences of movz/movn/movk to be less redundant and to choose the shortest sequence between the "movz" sequence and the "movn" sequence. * ARM64: add and recognize specific operation for sign extension * Fix compilation Co-authored-by: Xavier Leroy <xavier.leroy@college-de-france.fr>
mshinwell
pushed a commit
that referenced
this pull request
May 20, 2022
lpw25
added a commit
to lpw25/flambda-backend
that referenced
this pull request
May 20, 2022
fe8a98b flambda-backend: Save Mach as Cfg after Selection (ocaml-flambda#624) 2b205d8 flambda-backend: Clean up algorithms (ocaml-flambda#611) 524f0b4 flambda-backend: Initial refactoring of To_cmm (ocaml-flambda#619) 0bf75de flambda-backend: Refactor and correct the "is pure" and "can raise" (port upstream PR#10354 and PR#10387) (ocaml-flambda#555) d234bfd flambda-backend: Cpp mangling is now a configuration option (ocaml-flambda#614) 20fc614 flambda-backend: Check that stack frames are not too large (#10085) (ocaml-flambda#561) 5fc2e95 flambda-backend: Allow CSE of immutable loads across stores (port upstream PR#9562) (ocaml-flambda#562) 2a650de flambda-backend: Backport commit fc95347 from trunk (ocaml-flambda#584) 31651b8 flambda-backend: Improved ARM64 code generation (port upstream PR#9937) (ocaml-flambda#556) f0b6d68 flambda-backend: Simplify processing and remove dead code (error paths) in asmlink (port upstream PR#9943) (ocaml-flambda#557) 90c6746 flambda-backend: Improve code-generation for inlined comparisons (port upstream PR#10228) (ocaml-flambda#563) git-subtree-dir: ocaml git-subtree-split: fe8a98b
mshinwell
added a commit
that referenced
this pull request
May 24, 2022
454150b flambda-backend: Speed up testsuite (#658) 8362f9e flambda-backend: Speed up builds (#585) a527cab flambda-backend: Update backends for changes from ocaml-jst ce88833 Merge flambda-backend changes b7506bb Revert "Cherry-pick of ocaml/ocaml 1eeb0e7fe595f5f9e1ea1edbdf785ff3b49feeeb (#12)" 183f688 Add config option to enable/disable stack allocation (#22) ee7c849 If both the type and mode of an ident are wrong, complain about the type. (#19) 44bade0 Allow submoding during module inclusion checks (#21) de3bec9 Add subtyping between arrows of related modes (#20) fe8a98b flambda-backend: Save Mach as Cfg after Selection (#624) 2b205d8 flambda-backend: Clean up algorithms (#611) 93d8615 Enable the local keywords even when the local extension is off (#18) 524f0b4 flambda-backend: Initial refactoring of To_cmm (#619) 81dd85e Documentation for local allocations b05519f Fix a GC bug in local stack scanning (#17) 9f879de Fix __FUNCTION__ (#15) 0bf75de flambda-backend: Refactor and correct the "is pure" and "can raise" (port upstream PR#10354 and PR#10387) (#555) d234bfd flambda-backend: Cpp mangling is now a configuration option (#614) 20fc614 flambda-backend: Check that stack frames are not too large (#10085) (#561) 5fc2e95 flambda-backend: Allow CSE of immutable loads across stores (port upstream PR#9562) (#562) 2a650de flambda-backend: Backport commit fc95347 from trunk (#584) a78975e Optimise "include struct ... end" in more cases (ocaml/ocaml#11134) b819c66 Cherry-pick of ocaml/ocaml 1eeb0e7fe595f5f9e1ea1edbdf785ff3b49feeeb (#12) bb363d4 Optimise the allocation of optional arguments (#11) 31651b8 flambda-backend: Improved ARM64 code generation (port upstream PR#9937) (#556) f0b6d68 flambda-backend: Simplify processing and remove dead code (error paths) in asmlink (port upstream PR#9943) (#557) 90c6746 flambda-backend: Improve code-generation for inlined comparisons (port upstream PR#10228) (#563) git-subtree-dir: ocaml git-subtree-split: 454150b
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
see ocaml/ocaml#9937