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

Do more optimization (part 1) #391

merged 3 commits into from Jan 12, 2016


None yet
3 participants
Copy link

mshinwell commented Jan 4, 2016

This pull request contains all new files added to the compiler by the Flambda optimization framework. The framework provides a new intermediate language together with associated optimizations upon it, the majority of which at present are forms of beta-reduction and lifting (inlining, simplification based on information about values known at compile time, lifting of constants to be assigned to symbols, etc).

We plan to add more documentation including in the manual by the time of the release, so fear not.
There will also be some benchmark numbers made available probably in the next week or so.

The new files fall into the following categories:

  1. middle_end/ - optimizations largely independent from the current backend code, intended to be reusable if someone e.g. wants to try Flambda again with bytecode;
  2. middle_end/base_types/ - subdirectory of basic types for variables, etc.
  3. asmcomp/ - code specific to the current backend that turns Flambda into Clambda and deals with information exported into .cmx files.
  4. One supporting file in asmrun/ used for debugging the compiler, which was useful enough that it should probably be kept in the release.

The new files have not yet been added to the build system. The idea is that once this has been merged, along with the other outstanding pull requests, the remaining diff will show the interface between this code and the existing code. That will involve some amount of diff to existing code, but it should be fairly small. (I contemplated at first doing this merge the other way around, but I think this way will be more satisfactory.)

There will be more changes in this portion due to work still going on, but those can be merged in later.

I am awaiting separate approval from @xavierleroy on the new copyright headers.

Note that even though github won't display all the changes on one page, you can view individual files using the buttons.


This comment has been minimized.

Copy link

damiendoligez commented Jan 12, 2016

Ok for merging.

mshinwell added a commit that referenced this pull request Jan 12, 2016

Merge pull request #391 from mshinwell/flambda_prereq-new_files
GPR#391: Do more optimization (part 1)

@mshinwell mshinwell merged commit 22f35f1 into ocaml:trunk Jan 12, 2016

1 check was pending

continuous-integration/travis-ci/pr The Travis CI build is in progress
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.