Skip to content

Commit d39cf1b

Browse files
committed
Squashed 'ocaml/' changes from 7116602..23a7f73
23a7f73 flambda-backend: Fix some Debuginfo.t scopes in the frontend (#248) 33a04a6 flambda-backend: Attempt to shrink the heap before calling the assembler (#429) 8a36a16 flambda-backend: Fix to allow stage 2 builds in Flambda 2 -Oclassic mode (#442) d828db6 flambda-backend: Rename -no-extensions flag to -disable-all-extensions (#425) 68c39d5 flambda-backend: Fix mistake with extension records (#423) 423f312 flambda-backend: Refactor -extension and -standard flags (#398) 585e023 flambda-backend: Improved simplification of array operations (#384) faec6b1 flambda-backend: Typos (#407) 8914940 flambda-backend: Ensure allocations are initialised, even dead ones (#405) 6b58001 flambda-backend: Move compiler flag -dcfg out of ocaml/ subdirectory (#400) 4fd57cf flambda-backend: Use ghost loc for extension to avoid expressions with overlapping locations (#399) 8d993c5 flambda-backend: Let's fix instead of reverting flambda_backend_args (#396) d29b133 flambda-backend: Revert "Move flambda-backend specific flags out of ocaml/ subdirectory (#382)" (#395) d0cda93 flambda-backend: Revert #373 (#393) 1c6eee1 flambda-backend: Fix "make check_all_arches" in ocaml/ subdirectory (#388) a7960dd flambda-backend: Move flambda-backend specific flags out of ocaml/ subdirectory (#382) bf7b1a8 flambda-backend: List and Array Comprehensions (#147) f2547de flambda-backend: Compile more stdlib files with -O3 (#380) 3620c58 flambda-backend: Four small inliner fixes (#379) 2d165d2 flambda-backend: Regenerate ocaml/configure 3838b56 flambda-backend: Bump Menhir to version 20210419 (#362) 43c14d6 flambda-backend: Re-enable -flambda2-join-points (#374) 5cd2520 flambda-backend: Disable inlining of recursive functions by default (#372) e98b277 flambda-backend: Import #10736 (stack limit increases) (#373) 82c8086 flambda-backend: Use hooks for type tree and parse tree (#363) 33bbc93 flambda-backend: Fix parsecmm.mly in ocaml subdirectory (#357) 9650034 flambda-backend: Right-to-left evaluation of arguments of String.get and friends (#354) f7d3775 flambda-backend: Revert "Magic numbers" (#360) 0bd2fa6 flambda-backend: Add [@inline ready] attribute and remove [@inline hint] (not [@inlined hint]) (#351) cee74af flambda-backend: Ensure that functions are evaluated after their arguments (#353) 954be59 flambda-backend: Bootstrap dd5c299 flambda-backend: Change prefix of all magic numbers to avoid clashes with upstream. c2b1355 flambda-backend: Fix wrong shift generation in Cmm_helpers (#347) 739243b flambda-backend: Add flambda_oclassic attribute (#348) dc9b7fd flambda-backend: Only speculate during inlining if argument types have useful information (#343) aa190ec flambda-backend: Backport fix from PR#10719 (#342) c53a574 flambda-backend: Reduce max inlining depths at -O2 and -O3 (#334) a2493dc flambda-backend: Tweak error messages in Compenv. 1c7b580 flambda-backend: Change Name_abstraction to use a parameterized type (#326) 07e0918 flambda-backend: Save cfg to file (#257) 9427a8d flambda-backend: Make inlining parameters more aggressive (#332) fe0610f flambda-backend: Do not cache young_limit in a processor register (upstream PR 9876) (#315) 56f28b8 flambda-backend: Fix an overflow bug in major GC work computation (#310) 8e43a49 flambda-backend: Cmm invariants (port upstream PR 1400) (#258) e901f16 flambda-backend: Add attributes effects and coeffects (#18) aaa1cdb flambda-backend: Expose Flambda 2 flags via OCAMLPARAM (#304) 62db54f flambda-backend: Fix freshening substitutions 57231d2 flambda-backend: Evaluate signature substitutions lazily (upstream PR 10599) (#280) a1a07de flambda-backend: Keep Sys.opaque_identity in Cmm and Mach (port upstream PR 9412) (#238) faaf149 flambda-backend: Rename Un_cps -> To_cmm (#261) ecb0201 flambda-backend: Add "-dcfg" flag to ocamlopt (#254) 32ec58a flambda-backend: Bypass Simplify (#162) bd4ce4a flambda-backend: Revert "Semaphore without probes: dummy notes (#142)" (#242) c98530f flambda-backend: Semaphore without probes: dummy notes (#142) c9b6a04 flambda-backend: Remove hack for .depend from runtime/dune (#170) 6e5d4cf flambda-backend: Build and install Semaphore (#183) 924eb60 flambda-backend: Special constructor for %sys_argv primitive (#166) 2ac6334 flambda-backend: Build ocamldoc (#157) c6f7267 flambda-backend: Add -mbranches-within-32B to major_gc.c compilation (where supported) a99fdee flambda-backend: Merge pull request ocaml#10195 from stedolan/mark-prefetching bd72dcb flambda-backend: Prefetching optimisations for sweeping (ocaml#9934) 27fed7e flambda-backend: Add missing index param for Obj.field (#145) cd48b2f flambda-backend: Fix camlinternalOO at -O3 with Flambda 2 (#132) 9d85430 flambda-backend: Fix testsuite execution (#125) ac964ca flambda-backend: Comment out `[@inlined]` annotation. (#136) ad4afce flambda-backend: Fix magic numbers (test suite) (#135) 9b033c7 flambda-backend: Disable the comparison of bytecode programs (`ocamltest`) (#128) e650abd flambda-backend: Import flambda2 changes (`Asmpackager`) (#127) 14dcc38 flambda-backend: Fix error with Record_unboxed (bug in block kind patch) (#119) 2d35761 flambda-backend: Resurrect [@inline never] annotations in camlinternalMod (#121) f5985ad flambda-backend: Magic numbers for cmx and cmxa files (#118) 0e8b9f0 flambda-backend: Extend conditions to include flambda2 (#115) 99870c8 flambda-backend: Fix Translobj assertions for Flambda 2 (#112) 5106317 flambda-backend: Minor fix for "lazy" compilation in Matching with Flambda 2 (#110) dba922b flambda-backend: Oclassic/O2/O3 etc (#104) f88af3e flambda-backend: Wire in the remaining Flambda 2 flags (#103) 678d647 flambda-backend: Wire in the Flambda 2 inlining flags (#100) 1a8febb flambda-backend: Formatting of help text for some Flambda 2 options (#101) 9ae1c7a flambda-backend: First set of command-line flags for Flambda 2 (#98) bc0bc5e flambda-backend: Add config variables flambda_backend, flambda2 and probes (#99) efb8304 flambda-backend: Build our own ocamlobjinfo from tools/objinfo/ at the root (#95) d2cfaca flambda-backend: Add mutability annotations to Pfield etc. (#88) 5532555 flambda-backend: Lambda block kinds (#86) 0c597ba flambda-backend: Revert VERSION, etc. back to 4.12.0 (mostly reverts 822d0a0 from upstream 4.12) (#93) 037c3d0 flambda-backend: Float blocks 7a9d190 flambda-backend: Allow --enable-middle-end=flambda2 etc (#89) 9057474 flambda-backend: Root scanning fixes for Flambda 2 (#87) 08e02a3 flambda-backend: Ensure that Lifthenelse has a boolean-valued condition (#63) 77214b7 flambda-backend: Obj changes for Flambda 2 (#71) ecfdd72 flambda-backend: Cherry-pick 9432cfd (#84) d1a4396 flambda-backend: Add a `returns` field to `Cmm.Cextcall` (#74) 575dff5 flambda-backend: CMM traps (#72) 8a87272 flambda-backend: Remove Obj.set_tag and Obj.truncate (#73) d9017ae flambda-backend: Merge pull request #80 from mshinwell/fb-backport-pr10205 3a4824e flambda-backend: Backport PR#10205 from upstream: Avoid overwriting closures while initialising recursive modules f31890e flambda-backend: Install missing headers of ocaml/runtime/caml (#77) 83516f8 flambda-backend: Apply node created for probe should not be annotated as tailcall (#76) bc430cb flambda-backend: Add Clflags.is_flambda2 (#62) ed87247 flambda-backend: Preallocation of blocks in Translmod for value let rec w/ flambda2 (#59) a4b04d5 flambda-backend: inline never on Gc.create_alarm (#56) cef0bb6 flambda-backend: Config.flambda2 (#58) ff0e4f7 flambda-backend: Pun labelled arguments with type constraint in function applications (#53) d72c5fb flambda-backend: Remove Cmm.memory_chunk.Double_u (#42) 9d34d99 flambda-backend: Install missing artifacts 10146f2 flambda-backend: Add ocamlcfg (#34) 819d38a flambda-backend: Use OC_CFLAGS, OC_CPPFLAGS, and SHAREDLIB_CFLAGS for foreign libs (#30) f98b564 flambda-backend: Pass -function-sections iff supported. (#29) e0eef5e flambda-backend: Bootstrap (#11 part 2) 17374b4 flambda-backend: Add [@@Builtin] attribute to Primitives (#11 part 1) 85127ad flambda-backend: Add builtin, effects and coeffects fields to Cextcall (#12) b670bcf flambda-backend: Replace tuple with record in Cextcall (#10) db451b5 flambda-backend: Speedups in Asmlink (#8) 2fe489d flambda-backend: Cherry-pick upstream PR#10184 from upstream, dynlink invariant removal (rev 3dc3cd7 upstream) d364bfa flambda-backend: Local patch against upstream: enable function sections in the Dune build 886b800 flambda-backend: Local patch against upstream: remove Raw_spacetime_lib (does not build with -m32) 1a7db7c flambda-backend: Local patch against upstream: make dune ignore ocamldoc/ directory e411dd3 flambda-backend: Local patch against upstream: remove ocaml/testsuite/tests/tool-caml-tex/ 1016d03 flambda-backend: Local patch against upstream: remove ocaml/dune-project and ocaml/ocaml-variants.opam 93785e3 flambda-backend: To upstream: export-dynamic for otherlibs/dynlink/ via the natdynlinkops files (still needs .gitignore + way of generating these files) 63db8c1 flambda-backend: To upstream: stop using -O3 in otherlibs/Makefile.otherlibs.common eb2f1ed flambda-backend: To upstream: stop using -O3 for dynlink/ 6682f8d flambda-backend: To upstream: use flambda_o3 attribute instead of -O3 in the Makefile for systhreads/ de197df flambda-backend: To upstream: renamed ocamltest_unix.xxx files for dune bf3773d flambda-backend: To upstream: dune build fixes (depends on previous to-upstream patches) 6fbc80e flambda-backend: To upstream: refactor otherlibs/dynlink/, removing byte/ and native/ 71a03ef flambda-backend: To upstream: fix to Ocaml_modifiers in ocamltest 686d6e3 flambda-backend: To upstream: fix dependency problem with Instruct c311155 flambda-backend: To upstream: remove threadUnix 52e6e78 flambda-backend: To upstream: stabilise filenames used in backtraces: stdlib/, otherlibs/systhreads/, toplevel/toploop.ml 7d08e0e flambda-backend: To upstream: use flambda_o3 attribute in stdlib 403b82e flambda-backend: To upstream: flambda_o3 attribute support (includes bootstrap) 65032b1 flambda-backend: To upstream: use nolabels attribute instead of -nolabels for otherlibs/unix/ f533fad flambda-backend: To upstream: remove Compflags, add attributes, etc. 49fc1b5 flambda-backend: To upstream: Add attributes and bootstrap compiler a4b9e0d flambda-backend: Already upstreamed: stdlib capitalisation patch 4c1c259 flambda-backend: ocaml#9748 from xclerc/share-ev_defname (cherry-pick 3e937fcb562) 00027c4 flambda-backend: permanent/default-to-best-fit (cherry-pick 64240fd716a9d0db57d779ebe5b6f1a67704cdec) 2561dd9 flambda-backend: permanent/reraise-by-default (cherry-pick 50e94902ca6bb84c33982db858b74322eefd9af8) c0aa4f4 flambda-backend: permanent/gc-tuning (cherry-pick e9d6d2f145438dd6a82b56e9b41c8a01e752d81d) git-subtree-dir: ocaml git-subtree-split: 23a7f73
1 parent babf988 commit d39cf1b

File tree

424 files changed

+16056
-7238
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

424 files changed

+16056
-7238
lines changed

.depend

Lines changed: 93 additions & 25 deletions
Large diffs are not rendered by default.

.gitignore

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,6 @@ _build
127127
/otherlibs/*/.dep
128128
/otherlibs/dynlink/extract_crc
129129
/otherlibs/dynlink/dynlink_platform_intf.mli
130-
/otherlibs/dynlink/byte/dynlink.mli
131-
/otherlibs/dynlink/native/dynlink.mli
132130
/otherlibs/dynlink/dynlink_compilerlibs/Makefile
133131
/otherlibs/dynlink/dynlink_compilerlibs/*.ml
134132
/otherlibs/dynlink/dynlink_compilerlibs/*.mli
@@ -266,3 +264,8 @@ _build
266264
/yacc/ocamlyacc
267265
/yacc/version.h
268266
/yacc/.gdb_history
267+
268+
/otherlibs/dynlink/natdynlinkops
269+
/otherlibs/dynlink/natdynlinkops1
270+
/otherlibs/dynlink/natdynlinkops2
271+

.gitmodules

Lines changed: 0 additions & 3 deletions
This file was deleted.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ natruntop:
636636

637637
# Native dynlink
638638

639-
otherlibs/dynlink/dynlink.cmxa: otherlibs/dynlink/native/dynlink.ml
639+
otherlibs/dynlink/dynlink.cmxa: otherlibs/dynlink/dynlink.ml
640640
$(MAKE) -C otherlibs/dynlink allopt
641641

642642
# The lexer

Makefile.config.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,16 +231,20 @@ WITH_FPIC=@fpic@
231231
TARGET=@target@
232232
HOST=@host@
233233
FLAMBDA=@flambda@
234+
FLAMBDA2=@flambda2@
234235
WITH_FLAMBDA_INVARIANTS=@flambda_invariants@
236+
WITH_CMM_INVARIANTS=@cmm_invariants@
235237
FORCE_SAFE_STRING=@force_safe_string@
236238
DEFAULT_SAFE_STRING=@default_safe_string@
237239
WINDOWS_UNICODE=@windows_unicode@
238240
AFL_INSTRUMENT=@afl@
239241
FLAT_FLOAT_ARRAY=@flat_float_array@
240242
FUNCTION_SECTIONS=@function_sections@
243+
PROBES=@probes@
241244
AWK=@AWK@
242245
STDLIB_MANPAGES=@stdlib_manpages@
243246
NAKED_POINTERS=@naked_pointers@
247+
INTEL_JCC_BUG_CFLAGS=@intel_jcc_bug_cflags@
244248

245249
### Native command to build ocamlrun.exe
246250

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
4.12.1+dev0-2021-02-24
1+
4.12.0
22

33
# The version string is the first line of this file.
44
# It must be in the format described in stdlib/sys.mli

aclocal.m4

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ m4_include([build-aux/lt~obsolete.m4])
3030
# Macros from the autoconf macro archive
3131
m4_include([build-aux/ax_func_which_gethostbyname_r.m4])
3232
m4_include([build-aux/ax_pthread.m4])
33+
m4_include([build-aux/ax_check_compile_flag.m4])
3334

3435
# The following macro figures out which C compiler is used.
3536
# It does so by checking for compiler-specific predefined macros.

asmcomp/CSEgen.ml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ method class_of_operation op =
223223
| Imove | Ispill | Ireload -> assert false (* treated specially *)
224224
| Iconst_int _ | Iconst_float _ | Iconst_symbol _ -> Op_pure
225225
| Icall_ind | Icall_imm _ | Itailcall_ind | Itailcall_imm _
226-
| Iextcall _ -> assert false (* treated specially *)
226+
| Iextcall _ | Iprobe _ -> assert false (* treated specially *)
227227
| Istackoffset _ -> Op_other
228228
| Iload(_,_) -> Op_load
229229
| Istore(_,_,asg) -> Op_store asg
@@ -236,6 +236,7 @@ method class_of_operation op =
236236
| Ifloatofint | Iintoffloat -> Op_pure
237237
| Ispecific _ -> Op_other
238238
| Iname_for_debugger _ -> Op_pure
239+
| Iprobe_is_enabled _ -> Op_other
239240

240241
(* Operations that are so cheap that it isn't worth factoring them. *)
241242

@@ -263,7 +264,7 @@ method private cse n i =
263264
as to the argument reg. *)
264265
let n1 = set_move n i.arg.(0) i.res.(0) in
265266
{i with next = self#cse n1 i.next}
266-
| Iop (Icall_ind | Icall_imm _ | Iextcall _) ->
267+
| Iop (Icall_ind | Icall_imm _ | Iextcall _ | Iprobe _) ->
267268
(* For function calls, we should at least forget:
268269
- equations involving memory loads, since the callee can
269270
perform arbitrary memory stores;

0 commit comments

Comments
 (0)