aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorWeining Lu <luweining@loongson.cn>2023-08-09 09:58:34 +0800
committerWeining Lu <luweining@loongson.cn>2023-08-09 10:29:50 +0800
commitf62c9252fc0f1fa0a0f02033659db052c2202a4c (patch)
tree254e0941956655918d003e43720a214f5e11e186 /clang/lib/Frontend/CompilerInvocation.cpp
parentd6791fb77402e8d3719ee991a20187cec15dcfde (diff)
downloadllvm-f62c9252fc0f1fa0a0f02033659db052c2202a4c.zip
llvm-f62c9252fc0f1fa0a0f02033659db052c2202a4c.tar.gz
llvm-f62c9252fc0f1fa0a0f02033659db052c2202a4c.tar.bz2
[LoongArch] Support -march=native and -mtune=
As described in [1][2], `-mtune=` is used to select the type of target microarchitecture, defaults to the value of `-march`. The set of possible values should be a superset of `-march` values. Currently possible values of `-march=` and `-mtune=` are `native`, `loongarch64` and `la464`. D136146 has supported `-march={loongarch64,la464}` and this patch adds support for `-march=native` and `-mtune=`. A new ProcessorModel called `loongarch64` is defined in LoongArch.td to support `-mtune=loongarch64`. `llvm::sys::getHostCPUName()` returns `generic` on unknown or future LoongArch CPUs, e.g. the not yet added `la664`, leading to `llvm::LoongArch::isValidArchName()` failing to parse the arch name. In this case, use `loongarch64` as the default arch name for 64-bit CPUs. Two preprocessor macros are defined based on user-provided `-march=` and `-mtune=` options and the defaults. - __loongarch_arch - __loongarch_tune Note that, to work with `-fno-integrated-cc1` we leverage cc1 options `-target-cpu` and `-tune-cpu` to pass driver options `-march=` and `-mtune=` respectively because cc1 needs these information to define macros in `LoongArchTargetInfo::getTargetDefines`. [1]: https://github.com/loongson/LoongArch-Documentation/blob/2023.04.20/docs/LoongArch-toolchain-conventions-EN.adoc [2]: https://github.com/loongson/la-softdev-convention/blob/v0.1/la-softdev-convention.adoc Reviewed By: xen0n, wangleiat, steven_wu, MaskRay Differential Revision: https://reviews.llvm.org/D155824
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions