summaryrefslogtreecommitdiff
path: root/asmcomp/cmmgen.ml
Commit message (Collapse)AuthorAgeFilesLines
* Remove arm, i386 native-code backends (#11904)Nicolás Ojeda Bär2023-01-221-4/+0
|
* Remove uses of ;; from the codebaseSébastien Hinderer2022-02-251-1/+0
|
* Introduce atomic loads in Cmm and Mach IRsOlivier Nicole2022-02-011-2/+2
|
* Merge commit 'edf0075888ec27a50c4f50f76dba46f730797651' into 5.00_rebase_to_prTom Kelly2021-12-201-0/+2
|\
| * Add [@poll error] attribute (#10462)Sadiq Jaffer2021-11-091-0/+2
| |
* | Merge commit '2250fd8a2218796c07b0a25f184cdc682e4695ba' into 5.00_rebase_to_prTom Kelly2021-12-201-2/+10
|\ \ | |/
| * Enable if-then-else elimination in CmmgenVincent Laviron2021-10-211-2/+10
| |
* | remove multicore nop debugging (reverts ocaml-multicore#384)Tom Kelly2021-10-081-13/+15
| |
* | Merge commit 'b720b583a1d8eeeb295adbf597c6d2ddf994c1cd' into ↵Tom Kelly2021-09-301-1/+1
|\ \ | |/ | | | | parallel_minor_gc_4_13
| * Keep Sys.opaque_identity in Cmm and Mach (#9412)Stephen Dolan2021-04-151-1/+1
| | | | | | | | Keep Sys.opaque_identity in Cmm and Mach
* | Merge commit 'aced66c380f00a42e18a3b08e70bea87c419b2a0' into ↵Tom Kelly2021-09-301-6/+9
|\ \ | |/ | | | | parallel_minor_gc_4_13
| * Improve code-generation for inlined comparisons (#10228)Stephen Dolan2021-02-221-6/+9
| | | | | | | | Compile `if (let x = E in COND) then IFSO else IFNOT` like `let x = E in if COND then IFSO else IFNOT`.
* | Remove fun_suppress_pollsMark Shinwell2021-09-061-2/+0
| |
* | add polling at mach layerSadiq Jaffer2021-09-061-5/+5
| |
* | Add primitive for fetching dls stateKC Sivaramakrishnan2021-06-101-3/+6
| |
* | Merge commit '86c8a98f3c36b25c2e3f2185c24809d0babad5b4' into ↵Tom Kelly2021-03-081-9/+9
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Remove labels after calls, checkbound, and GC pointsNicolás Ojeda Bär2020-10-081-4/+4
| |
| * Remove CblockheaderNicolás Ojeda Bär2020-10-081-2/+2
| |
* | Merge commit 'eb342da8a9cdbce0760b91c9b9d5e682ed0d4496' into ↵Tom Kelly2021-03-081-20/+23
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Ensure all structured constants are registered (#9940)Vincent Laviron2020-10-061-1/+4
| | | | | | | | Allocated constants from other compilation units were not registered, resulting in missed opportunities for unboxing FP and boxed-integer constants.
| * Use Cmm_helpers for boxed int arithmetic (#9959)Stephen Dolan2020-10-051-19/+19
| | | | | | | | This way, Cmm's arithmetic optimisations also apply to boxed integer arithmetic.
* | Merge commit 'e41dc9c44327f40c1ab0feea12f779c931c9e31e' into ↵Tom Kelly2021-03-041-15/+27
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Revised passing of arguments to external C functionsXavier Leroy2020-07-241-12/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce the type Cmm.exttype to precisely describe arguments to external C functions, especially unboxed numerical arguments. Annotate Cmm.Cextcall with the types of the arguments (Cmm.exttype list). An empty list means "all arguments have default type XInt". Annotate Mach.Iextcall with the type of the result (Cmm.machtype) and the types of the arguments (Cmm.exttype list). Change (slightly) the API for describing calling conventions in Proc: - loc_external_arguments now takes a Cmm.exttype list, in order to know more precisely the types of the arguments. - loc_arguments, loc_parameters, loc_results, loc_external_results now take a Cmm.machype instead of an array of pseudoregisters. (Only the types of the pseudoregisters mattered anyway.) Update the implementations of module Proc accordingly, in every port. Introduce a new overridable method in Selectgen, insert_move_extcall_arg, to produce the code that moves an argument of an external C function to the locations returned by Proc.loc_external_arguments. Revise the selection of external calls accordingly (method emit_extcall_args in Selectgen).
* | Merge commit '9d4679f338ae0c66de2dc16ea7d9e87c05fe6b9b' into ↵Tom Kelly2021-03-021-4/+8
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * New representation of closures, native-code compilationXavier Leroy2020-06-051-4/+8
| | | | | | | | | | In code that builds closures, instead of the old arity field, produce a closure information field encoding arity + position of environment.
* | Merge commit '0ca651b95cbda5d58f7760f0fa1dba965d1f0828' into ↵Tom Kelly2021-03-021-14/+8
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Remove Const_pointer from Lambda and Clambda (#9585)Stephen Dolan2020-06-021-14/+8
| | | | | | | | | | | | | | | | | | | | | | Lambda and Clambda distinguish Const_int from Const_pointer only so that they can pass the information to Cmm. But now that that Const_pointer is gone from Cmm (#9578), there's no need for the distinction in Lambda either. This PR requires a bootstrap, because the .cmo format changes: Lambda.structured_constant has one fewer constructor. The bootstrap is in the following commit.
* | Merge commit '71e91123c27780fdfeca93c6c57c2f9af5417e54' into ↵Tom Kelly2021-03-021-16/+2
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Move float compare from cmmgen to cmm_helpersGreta Yorsh2020-05-271-17/+3
| |
| * Bind arguments of integer and float compare in cmmgenGreta Yorsh2020-05-271-17/+17
| |
| * Avoid creating ill-formed blocks in Cmm letrec (#9577)Stephen Dolan2020-05-251-1/+1
| | | | | | | | | | Use "1" (integer 0) as filler value instead of "0" (null pointer). Fixes: 7718
* | Merge commit '41548a735900a74202b07f918521ef9ac52ece1e' into ↵Tom Kelly2021-03-021-8/+8
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Remove Const_pointer (#9578)Stephen Dolan2020-05-191-8/+8
| | | | | | | | Since #9316 was merged, Cconst_pointer is compiled in exactly the same way as Cconst_int. This commit removes the now-redundant Cconst_pointer and Cconst_natpointer.
* | Merge commit '8f85e002b2e1f3f4ccf8fefa5ad9a137109168d1' into ↵Tom Kelly2021-03-011-6/+5
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Replace Location.t with Lambda.scoped_location in Lambda codeStephen Dolan2020-04-271-6/+5
| | | | | | | | | | | | This commit threads scopes through translation from Typedtree to Lambda, extending the scopes when entering functions, modules, classes and methods.
* | Merge commit 'd5dadae8ed403a34f31c8eb61606d1d38f77c561' into ↵Tom Kelly2021-03-011-8/+7
|\ \ | |/ | | | | parallel_minor_gc_4_11b
| * Fix Cmm type of unboxed Int64 values in Clet_mutVincent Laviron2020-04-181-8/+7
| |
* | Merge commit '017d4a3eaddbd2b25649d04ed576258e4ddf60cc' into ↵Tom Kelly2021-03-011-1/+28
|\ \ | |/ | | | | parallel_minor_gc_4_11b
| * Replace caml_int_compare and caml_float_compare with primitives (#2324)Greta Yorsh2020-03-261-1/+28
| |
* | Merge commit 'b82d5194c21fcb96a2a2f8aec8af396056910460' into ↵Tom Kelly2021-03-011-6/+17
|\ \ | |/ | | | | parallel_minor_gc_4_11b
| * Use typing information from Clambda for mutable Cmm variablesStephen Dolan2020-02-251-6/+17
| |
* | Merge upstream updatesKC Sivaramakrishnan2020-11-061-1/+3
|\ \
| * | Use Word_val for pointers with Patomic_loadTom Kelly2020-08-211-1/+3
| | |
* | | Add a primitive to insert nop instructionKC Sivaramakrishnan2020-07-311-3/+5
|/ /
* | removal of CloadmutTom Kelly2020-07-141-16/+2
| |
* | rebase ocaml-multicore PR328: Get multicore compiler working with flambdaTom Kelly2020-05-011-2/+22
| |
* | Merge commit 'f4b30f0a9b93a51317272812c33441326881f9ae' into ↵Tom Kelly2020-04-301-21/+42
|\ \ | |/ | | | | parallel_minor_gc_4_10
| * Remove the transformation untag_int(tag_int x) = x. (#9032)Stephen Dolan2019-10-141-6/+15
| | | | | | | | | | | | | | | | This transformation is incorrect for certain large values of x, as it can get the wrong value in the high bit. In certain cases where the high bit is not used (esp. storing a byte into a string), the transformation is kept intact. Fixes #9028.
| * Avoid redundant sign-extensions for int32 on 64-bit platforms.Stephen Dolan2019-10-141-15/+27
| |
* | Merge commit 'dbd717e817307dc6a527dd54cc1c9765b30cfad2' into ↵Tom Kelly2020-04-291-2649/+112
|\ \ | |/ | | | | parallel_minor_gc_4_10