Skip to content

Remove old x86 directives #5

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 23 commits into
base: new-directives-in-x86
Choose a base branch
from

Conversation

spiessimon
Copy link
Owner

No description provided.

@spiessimon spiessimon force-pushed the new-directives-x86-remove-old-ones branch from 63f364e to f9bd95d Compare April 24, 2025 16:38
@spiessimon spiessimon force-pushed the new-directives-in-x86 branch from dd5e4e9 to 8c7611e Compare April 25, 2025 08:50
@spiessimon spiessimon force-pushed the new-directives-x86-remove-old-ones branch 2 times, most recently from 0ca1d52 to bd498a6 Compare April 25, 2025 09:04
@spiessimon spiessimon force-pushed the new-directives-in-x86 branch 5 times, most recently from 1775d6a to fb842d5 Compare April 25, 2025 13:59
@spiessimon spiessimon force-pushed the new-directives-x86-remove-old-ones branch from bd498a6 to 7bf1756 Compare April 25, 2025 16:23
lukemaurer and others added 19 commits April 29, 2025 14:13
…_name.t` (ocaml-flambda#3708)

* Introduce `Global_module.Parameter_name.t`

Takes the place of any `Global_module.t` or `Global_module.Name.t` that is known
to be the name of a parameter. Can't have parameters. (Notably, even the current
half-worked-out plans for parameterized parameters would actually keep this type
in many places, so this isn't as much in the way as one might think.)

* Don't call `global_of_global_name` on parameter names

This has the benefit of not loading the .cmi file for something whose signature
we don't need (say because the parameter is only used as part of an instance
name).

* Code review
This reorganizes the docs for easy deployment to the oxcaml website
* Reverse the instruction sequence at the end of pop_all
* Reenable checking top trap vs popped handler
…caml-flambda#3302)

* Replay history

* Apply suggestions from code review

Co-authored-by: Nathanaëlle Courant <[email protected]>

* Remove dead code

* update CR

* Remove now incorrect comment

* make fmt

---------

Co-authored-by: Nathanaëlle Courant <[email protected]>
Remove unused [Cfg_to_linear.print_assembly]
Use "caml_simd*" instead of "caml_sse*" builtins in simd array tests
Adds a new IR called "Blambda" for compiling complicated things to bytecode slightly more easily than via Lambda.

Blambda is designed to be a lambda-like expression language where every primitive is also a bytecode primitive. Control flow is still the same as lambda, except switch statements have already been elaborated somewhat. This allows us to separate the bytecode backend into two stages:

First, Lambda -> Blambda: Preserves the expression structure, but compiles all complex primitives down to ones with corresponding bytecode instructions. This will become more important as we continue to add more primitives to Lambda which have no corresponding bytecode instruction. The translation of non-native operations and switches that was previously done in bytecomp/bytegen.ml is now done in a separate pass in bytecomp/blambda_of_lambda.ml.
Second, Blambda -> Instructions: Only has to deal with linearizing the Lambda-like control flow. The comparatively fragile stack size maintenance and stack index computations can remain in their own module which doesn't need to be modified every time we change Lambda.
As with any IR, there is also code to print blambda in bytegen/printblambda.ml, as well as a new command-line flag for ocamlc to dump the blambda code.
Correct sort in coercion case of [type_argument]
@spiessimon spiessimon force-pushed the new-directives-x86-remove-old-ones branch from 7bf1756 to c73e03b Compare May 8, 2025 12:52
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.

10 participants