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