Open
Description
Some information is lost when compiling the lambda intermediate code to bytecode. The PR ocaml/ocaml/pull/13438 allows to keep some of this information, which could be use to generate better code:
- shape of bigarrays (optimized bigarray operation);
- integer types (direct comparison for int32 / int64 / nativeint)
- whether a string access is unsafe (skip bound check);
- representation of the arguments and result of primitives (call external primitives with unboxed parameters);
- block mutability (improve the data flow analyses).