[PATCH] D141102: [ORC] Add lazy jit support for LoongArch64

wanglei via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 21 01:47:31 PST 2023


wangleiat added a comment.

In D141102#4070559 <https://reviews.llvm.org/D141102#4070559>, @lhames wrote:

> LGTM. Thank you very much for your work on this!
>
> Please try adding Loongarch as a supported architecture in `llvm-project/llvm/test/ExecutionEngine/OrcLazy/lit.local.cfg` and running the lazy-compilation regression tests from the built LLVM dir with `./bin/llvm-lit -v test/ExecutionEngine/OrcLazy`. If they pass reliably then you could enable them in this patch (or a follow-up). If not then it may indicate areas for future work either in Loongarch support or in the LLVM JIT infrastructure itself.

Thank you very much for your comments, I made the following modifications and running the lazy-compliation regression tests:

1. Modify `llvm-project/llvm/test/lit.cfg.py`, and add floating-point features to the `LoongArch` backend (`lli_args = ['-mattr=+d']`, because the `LoongArch` backend does not add floating-point support by default, causing the `frem.ll` test to fail).
2. Modify `llvm-project/llvm/test/ExecutionEngine/lit.local.cfg` to remove `LoongArch` from the `unsupported` list (because only modify `OrcLazy/lit.local.cfg` will not running the regression tests).
3. Modify `llvm-project/llvm/test/ExecutionEngine/OrcLazy/lit.local.cfg`, and add `loongarch64` to the supported list.

The test results are as follows:

  [wanglei at localhost _build]$ ./bin/llvm-lit -v test/ExecutionEngine/OrcLazy                                                                                                                        
  -- Testing: 23 tests, 23 workers --
  UNSUPPORTED: LLVM :: ExecutionEngine/OrcLazy/minimal-throw-catch.ll (1 of 23)
  UNSUPPORTED: LLVM :: ExecutionEngine/OrcLazy/debug-objects-elf-minimal.ll (2 of 23)
  UNSUPPORTED: LLVM :: ExecutionEngine/OrcLazy/macho-universal-static-library-support.ll (3 of 23)
  UNSUPPORTED: LLVM :: ExecutionEngine/OrcLazy/debug-descriptor-elf-minimal.ll (4 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/bad-object-file.ll (5 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/minimal.ll (6 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/global_aliases.ll (7 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/emulated-tls.ll (8 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/common-symbols.ll (9 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/private_linkage.ll (10 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/printargv.ll (11 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/single-function-call.ll (12 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/anonymous_globals.ll (13 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/weak-function.ll (14 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/multiple-compile-threads-basic.ll (15 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/module-flags.ll (16 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/weak-non-materialization.ll (17 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/basic-object-file-loading.ll (18 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/basic-whole-module-partitions.ll (19 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/hidden-visibility.ll (20 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/static-initializers-in-objectfiles.ll (21 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/static-library-support.ll (22 of 23)
  PASS: LLVM :: ExecutionEngine/OrcLazy/global-ctors-and-dtors.ll (23 of 23)
  
  Testing Time: 0.29s
    Unsupported:  4
    Passed     : 19

Due to the problem of not supporting floating-point features by default, I decided to turn on regression testing in subsequent patches.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141102/new/

https://reviews.llvm.org/D141102



More information about the llvm-commits mailing list