[all-commits] [llvm/llvm-project] 7a732b: [orc-rt] Reorganize regression tests, add JIT'd co...

Lang Hames via All-commits all-commits at lists.llvm.org
Thu Sep 24 22:15:00 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7a732b1ccfbf9694aad53817ebd47d29335590bc
      https://github.com/llvm/llvm-project/commit/7a732b1ccfbf9694aad53817ebd47d29335590bc
  Author: Lang Hames <lhames at gmail.com>
  Date:   2026-09-25 (Fri, 25 Sep 2026)

  Changed paths:
    M orc-rt/cmake/OrcRTTesting.cmake
    A orc-rt/test/regression/README.md
    R orc-rt/test/regression/check-rt-process-info.test
    R orc-rt/test/regression/darwin/lit.local.cfg
    R orc-rt/test/regression/init.test
    A orc-rt/test/regression/jit-free-foundations/check-rt-process-info.test
    A orc-rt/test/regression/jit-free-foundations/lit.local.cfg
    A orc-rt/test/regression/jit-free-foundations/logging/lit.local.cfg
    A orc-rt/test/regression/jit-free-foundations/logging/os_log/delivery.test
    A orc-rt/test/regression/jit-free-foundations/logging/os_log/lit.local.cfg
    A orc-rt/test/regression/jit-free-foundations/logging/os_log/no-printf-output.test
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/bad-level.test
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/debug-compiled-out.test
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/debug-level.test
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/format.test
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/level-off.test
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/lit.local.cfg
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/output-redirect.test
    A orc-rt/test/regression/jit-free-foundations/logging/printf-backend/runtime-level.test
    A orc-rt/test/regression/jit-free-foundations/ogre-help.test
    A orc-rt/test/regression/jit-free-foundations/smoke-check.test
    A orc-rt/test/regression/languages/c/lit.local.cfg
    A orc-rt/test/regression/languages/c/return-zero.c
    R orc-rt/test/regression/linux/lit.local.cfg
    M orc-rt/test/regression/lit.cfg.py
    R orc-rt/test/regression/logging/lit.local.cfg
    R orc-rt/test/regression/logging/os_log/delivery.test
    R orc-rt/test/regression/logging/os_log/lit.local.cfg
    R orc-rt/test/regression/logging/os_log/no-printf-output.test
    R orc-rt/test/regression/logging/printf-backend/bad-level.test
    R orc-rt/test/regression/logging/printf-backend/debug-compiled-out.test
    R orc-rt/test/regression/logging/printf-backend/debug-level.test
    R orc-rt/test/regression/logging/printf-backend/format.test
    R orc-rt/test/regression/logging/printf-backend/level-off.test
    R orc-rt/test/regression/logging/printf-backend/lit.local.cfg
    R orc-rt/test/regression/logging/printf-backend/output-redirect.test
    R orc-rt/test/regression/logging/printf-backend/runtime-level.test
    A orc-rt/test/regression/object-formats/lit.local.cfg
    A orc-rt/test/regression/object-formats/mach-o/arm64/lit.local.cfg
    A orc-rt/test/regression/object-formats/mach-o/arm64/return-zero.s
    A orc-rt/test/regression/object-formats/mach-o/lit.local.cfg
    R orc-rt/test/regression/smoke-check.test

  Log Message:
  -----------
  [orc-rt] Reorganize regression tests, add JIT'd code support (#226356)

Reorganize orc-rt/test/regression so that tests are placed by the
question they ask, rather than by the kind of input they use:

  jit-free-foundations/  Tests of runtime facilities that can be
                         exercised without JIT'd code: ogre's command
                         line, process info, logging, and (in future)
                         connection lifecycle.
  languages/<language>/  Tests that source-language constructs behave
                         correctly when JIT'd under the ORC runtime.
  object-formats/<format>/<arch>/
                         Tests that object format features (e.g.
                         relocations, sections, and directives) are
                         handled correctly, written in assembly.

A README.md describes where tests should go, and the conventions for
writing them. Existing tests move into jit-free-foundations/, and
init.test is renamed to ogre-help.test to describe what it tests. The
darwin/ and linux/ directories are removed: they contained no tests, and
gated on the host rather than the runtime's target. Tests should gate on
features instead.

Add lit support for compiling and running JIT'd code:

  %{jit}   Runs its inputs under ogre, with llvm-jitlink as the
           controller.
  %{ogre}  The path to ogre.
  %{cc}    Compiles C for the runtime's target.
  %{cxx}   Compiles C++ for the runtime's target.
  %{mc}    Assembles its input for the runtime's target, using
           llvm-mc.

%{cc} and %{cxx} default to clang and clang++ from the LLVM tools
directory, and can be overridden with --param orc-rt-cc=<cc> and --param
orc-rt-cxx=<cxx> to test the runtime against output from other
compilers. %{mc} can't be overridden, so that object format tests always
check the runtime against the same assembler.

Tests that use these substitutions are gated on the llvm-jitlink,
llvm-mc, orc-rt-cc, and orc-rt-cxx features, so they are reported as
unsupported (rather than failing) when the tools aren't available.
clang, llvm-jitlink, and llvm-mc are added to the test dependencies if
they're being built alongside the runtime. Object format tests are also
gated on new target-arch=<arch> and target-object-format=<format>
features, derived from the runtime's target triple.

jit-free-foundations/ removes the %{cc}, %{cxx}, %{mc}, and %{jit}
substitutions, so that tests there can't accidentally depend on JIT'd
code.

Add languages/c/return-zero.c and object-formats/mach-o/arm64/
return-zero.s as the first tests that run JIT'd code, establishing the
pattern for each kind of test. They use llvm-jitlink's -show-jit-result
option to check that the JIT'd main actually ran and returned zero.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list