|
From: Matthew F. <mat...@gm...> - 2020-12-29 21:19:28
|
On Tue, Dec 29, 2020 at 2:32 PM Chris Cannam <ca...@al...> wrote: > > On Tue, 29 Dec 2020, at 18:35, Matthew Fluet wrote: > > Try running > > `./bin/regression -chunk-tail-call false`, which will force the C and > > LLVM codegens to use a non-tail-calling trampoline. > > Yes! that works. Log here: > https://all-day-breakfast.com/m/mlton-logs/mlton-bootstrap0-regression-notailcall.log > > (should I be concerned about the discrepancies in the "real" test?) No, low-order bits in the floating point operations often differ. (The IEEE-754 only species correct rounding for the basic math operations; the trig and other operations often differ between platforms in the low order bits.) Eventually, we should create a `real.arm64-darwin.ok` file with the output from that platform. > Running the same compiler with -chunk-tail-call false on a real-world program suggests that this is going to work there as well - I will rebuild with the control-flags change to make sure. > > What would we be losing by this? Was there a performance or other advantage to the tail-call trampoline? There should be some performance wins. See https://github.com/MLton/mlton/pull/304, though those results don't specifically call out the effect of `-chunk-tail-call`. > First quick check has the new native build running maybe 20-30% faster than translated amd64 code - which doesn't seem like much but is plausible on this platform, as the Rosetta2 Intel recompiler thing is really remarkably effective. Nice to know. -- To unsubscribe from this group and stop receiving emails from it, send an email to mlt...@ml.... |