Project

General

Profile

« Previous | Next » 

Revision 158b8cb5

Added by Kevin Menard 8 months ago

YJIT: Add compilation log (#11818)

  • YJIT: Add --yjit-compilation-log flag to print out the compilation log at exit.

  • YJIT: Add an option to enable the compilation log at runtime.

  • YJIT: Fix a typo in the IseqPayload docs.

  • YJIT: Add stubs for getting the YJIT compilation log in memory.

  • YJIT: Add a compilation log based on a circular buffer to cap the log size.

  • YJIT: Allow specifying either a file or directory name for the YJIT compilation log.

The compilation log will be populated as compilation events occur. If a directory is supplied, then a filename based on the PID will be used as the write target. If a file name is supplied instead, the log will be written to that file.

  • YJIT: Add JIT compilation of C function substitutions to the compilation log.

  • YJIT: Add compilation events to the circular buffer even if output is sent to a file.

Previously, the two modes were treated as being exclusive of one another. However, it could be beneficial to log all events to a file while also allowing for direct access of the last N events via RubyVM::YJIT.compilation_log.

  • YJIT: Make timestamps the first element in the YJIT compilation log tuple.

  • YJIT: Stream log to stderr if --yjit-compilation-log is supplied without an argument.

  • YJIT: Eagerly compute compilation log messages to avoid hanging on to references that may GC.

  • YJIT: Log all compiled blocks, not just the method entry points.

  • YJIT: Remove all compilation events other than block compilation to slim down the log.

  • YJIT: Replace circular buffer iterator with a consuming loop.

  • YJIT: Support --yjit-compilation-log=quiet as a way to activate the in-memory log without printing it.

Co-authored-by: Randy Stauner

  • YJIT: Promote the compilation log to being the one YJIT log.

Co-authored-by: Randy Stauner

  • Update doc/yjit/yjit.md

  • Update doc/yjit/yjit.md


Co-authored-by: Randy Stauner
Co-authored-by: Maxime Chevalier-Boisvert