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

Better control over cross-module optimizations #4454

Closed
vicuna opened this issue Nov 22, 2007 · 2 comments
Closed

Better control over cross-module optimizations #4454

vicuna opened this issue Nov 22, 2007 · 2 comments

Comments

@vicuna
Copy link

vicuna commented Nov 22, 2007

Original bug ID: 4454
Reporter: @alainfrisch
Assigned to: @mshinwell
Status: resolved (set by @mshinwell on 2016-12-06T22:09:27Z)
Resolution: fixed
Priority: normal
Severity: feature
Category: back end (clambda to assembly)
Related to: #6389
Monitored by: @bobzhang @gasche @ygrek "Julien Signoles" @hcarty

Bug description

It should be possible to have finer control over cross-module optimizations as performed by ocamlopt. Typical motivations:

  1. Speed up the edit-compile-run cycle (bytecode is not always an option).
  2. Allow .cmxs plugins to be used in several different applications sharing only some interfaces.

Possible ideas:

  1. When a module is compiled by ocamlopt, a special option asks ocamlopt no to produce cross-module info for the resulting .cmx.
  2. A different set of search directories to look for .cmx files.
  3. Put cross-module info into .cmxa and let ocamlopt use .cmxa at compile-time
    to perform optimizations.
  4. Explicitly allow/disallow ocamlopt (with command line options) to use cross-module optimizations for some modules.
@vicuna
Copy link
Author

vicuna commented Jun 2, 2014

Comment author: @alainfrisch

gasche proposed a command-line to implement 1: #30 / #6389

@vicuna
Copy link
Author

vicuna commented Dec 6, 2016

Comment author: @mshinwell

Option 1 has been implemented (-opaque).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants