• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14module:
15  name: llvm
16  namespace: panda::llvmbackend
17  descritpition: LLVM AOT compiler for panda
18
19options:
20  - name: llvm-dump-before
21    type: bool
22    default: false
23    description: Whether generated LLVM module should be dumped before optimization passes are run
24  - name: llvm-dump-after
25    type: bool
26    default: false
27    description: Whether generated LLVM module should be dumped after optimization passes are run
28  - name: llvm-log
29    type: arg_list_t
30    default:
31      - none
32    possible_values:
33      - none
34      - all
35      - infra
36      - stackmaps
37      - entry
38      - ir
39    description: Set log llvm components
40    delimiter: ","
41  - name: llvm-pipeline
42    type: std::string
43    default: ""
44    description: >
45      File with a sequence of llvm's passes, that will be involved into optimization
46      pipeline.
47  - name: llvm-options
48    type: std::string
49    default: ""
50    description: String with command line options that directly passed into llvm.
51  - name: llvm-inline-module
52    type: std::string
53    default: ""
54    description: A supplemental LLVM IR bitcode module with additional functions to be inlined
55  - name: llvm-cpu
56    type: std::string
57    default: "cortex-a55"
58    description: Set target cpu
59  - name: llvm-triple
60    type: std::string
61    default: "aarch64v8.2a-unknown-linux-gnu"
62    description: Set target triple
63