Skip to content

Add -dtimings-precision flag#833

Merged
mshinwell merged 2 commits intooxcaml:mainfrom
azewierzejew:prec_timings
Sep 16, 2022
Merged

Add -dtimings-precision flag#833
mshinwell merged 2 commits intooxcaml:mainfrom
azewierzejew:prec_timings

Conversation

@azewierzejew
Copy link
Copy Markdown
Contributor

@azewierzejew azewierzejew commented Sep 15, 2022

When using -dtimings flag to benchmark the compiler the values we get are seconds, rounded to the third decimal place.

When adding that for thousands of files the rounding error quickly adds up and can produces strange atrifacts in the summary.

This PR adds a new flag -dtimings-precision. With that the precision of the output can be changed. The default is 3 same as before.

@gretay-js
Copy link
Copy Markdown
Contributor

I don't think we need a new flag for it, I'd just change the output to have 6 instead of 3 digits precision.

@azewierzejew
Copy link
Copy Markdown
Contributor Author

I don't think we need a new flag for it, I'd just change the output to have 6 instead of 3 digits precision.

That's a valid point but I believe having choice is better for the human use as the output is easier to read.
I also would be scared of someone writing some hacky scripts that depend on the shape of the output with -dtimings

@gretay-js
Copy link
Copy Markdown
Contributor

I don't think we need a new flag for it, I'd just change the output to have 6 instead of 3 digits precision.

That's a valid point but I believe having choice is better for the human use as the output is easier to read. I also would be scared of someone writing some hacky scripts that depend on the shape of the output with -dtimings

We have too many flags. If we do end up with a new flag, I'd prefer the name to be more explicit, and easier to find next to the old flag, so something like -dtimings-high-precision.

@azewierzejew azewierzejew changed the title Add -dprec-timings flag Add -dtimings-precision flag Sep 15, 2022
Copy link
Copy Markdown
Contributor

@gretay-js gretay-js left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To reduce the diff with upstream, is it possible to use !Clflags.timings_precision directly from Profile.time_display?

@azewierzejew
Copy link
Copy Markdown
Contributor Author

To reduce the diff with upstream, is it possible to use !Clflags.timings_precision directly from Profile.time_display?

Not possible (cyclical dependency).
I believe we would just have to put the val timings_precision : int ref in profile.ml.

@gretay-js
Copy link
Copy Markdown
Contributor

gretay-js commented Sep 16, 2022

To reduce the diff with upstream, is it possible to use !Clflags.timings_precision directly from Profile.time_display?

Not possible (cyclical dependency).
ok, thanks.

I believe we would just have to put the val timings_precision : int ref in profile.ml.

no, it belongs in Clflags. Can you just add it to OCAMLPARAM please?

@mshinwell mshinwell merged commit 2678b86 into oxcaml:main Sep 16, 2022
mshinwell added a commit to mshinwell/oxcaml that referenced this pull request Oct 24, 2022
25188da flambda-backend: Missed comment from PR802 (oxcaml#887)
9469765 flambda-backend: Improve the semantics of asynchronous exceptions (new simpler version) (oxcaml#802)
d9e4dd0 flambda-backend: Fix `make runtest` on NixOS (oxcaml#874)
4bbde7a flambda-backend: Simpler symbols (oxcaml#753)
ef37262 flambda-backend: Add opaqueness to Obj.magic under Flambda 2 (oxcaml#862)
a9616e9 flambda-backend: Add build system hooks for ocaml-jst (oxcaml#869)
045ef67 flambda-backend: Allow the compiler to build with stock Dune (oxcaml#868)
3cac5be flambda-backend: Simplify Makefile logic for natdynlinkops (oxcaml#866)
c5b12bf flambda-backend: Remove unnecessary install lines (oxcaml#860)
ff12bbe flambda-backend: Fix unused variable warning in st_stubs.c (oxcaml#861)
c84976c flambda-backend: Static check for noalloc: attributes (oxcaml#825)
ca56052 flambda-backend: Build system refactoring for ocaml-jst (oxcaml#857)
39eb7f9 flambda-backend: Remove integer comparison involving nonconstant polymorphic variants (oxcaml#854)
c102688 flambda-backend: Fix soundness bug by using currying information from typing (oxcaml#850)
6a96b61 flambda-backend: Add a primitive to enable/disable the tick thread (oxcaml#852)
f64370b flambda-backend: Make Obj.dup use a new primitive, %obj_dup (oxcaml#843)
9b78eb2 flambda-backend: Add test for oxcaml#820 (include functor soundness bug) (oxcaml#841)
8f24346 flambda-backend: Add `-dtimings-precision` flag (oxcaml#833)
65c2f22 flambda-backend: Add test for oxcaml#829 (oxcaml#831)
7b27a49 flambda-backend: Follow-up PR#829 (comballoc fixes for locals) (oxcaml#830)
ad7ec10 flambda-backend: Use a custom condition variable implementation (oxcaml#787)
3ee650c flambda-backend: Fix soundness bug in include functor (oxcaml#820)
2f57378 flambda-backend: Static check noalloc (oxcaml#778)
aaad625 flambda-backend: Emit begin/end region only when stack allocation is enabled (oxcaml#812)
17c7173 flambda-backend: Fix .cmt for included signatures (oxcaml#803)
e119669 flambda-backend: Increase delays in tests/lib-threads/beat.ml (oxcaml#800)
ccc356d flambda-backend: Prevent dynamic loading of the same .cmxs twice in private mode, etc. (oxcaml#784)
14eb572 flambda-backend: Make local extension point equivalent to local_ expression (oxcaml#790)
487d11b flambda-backend: Fix tast_iterator and tast_mapper for include functor. (oxcaml#795)
a50a818 flambda-backend: Reduce closure allocation in List (oxcaml#792)
96c9c60 flambda-backend: Merge ocaml-jst
a775b88 flambda-backend: Fix ocaml/otherlibs/unix 32-bit build (oxcaml#767)
f7c2679 flambda-backend: Create object files internally to avoid invoking GAS (oxcaml#757)
c7a46bb flambda-backend: Bugfix for Cmmgen.expr_size with locals (oxcaml#756)
b337cb6 flambda-backend: Fix build_upstream for PR749 (oxcaml#750)
8e7e81c flambda-backend: Differentiate is_int primitive between generic and variant-only versions (oxcaml#749)

git-subtree-dir: ocaml
git-subtree-split: 25188da
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.

4 participants