[llvm] [clang] [RISCV] Support constraint "s" (PR #80201)

2024-01-31 Thread Kito Cheng via cfe-commits
https://github.com/kito-cheng approved this pull request. Just one minor comment, otherwise LGTM :) https://github.com/llvm/llvm-project/pull/80201 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[llvm] [clang] [RISCV] Support constraint "s" (PR #80201)

2024-01-31 Thread Kito Cheng via cfe-commits
@@ -0,0 +1,76 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -relocation-model=static < %s | FileCheck %s --check-prefix=RV32 +; RUN: llc -mtriple=riscv64 -relocation-model=pic < %s | FileCheck %s

[llvm] [clang] [RISCV] Support constraint "s" (PR #80201)

2024-01-31 Thread Kito Cheng via cfe-commits
https://github.com/kito-cheng edited https://github.com/llvm/llvm-project/pull/80201 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] [RISCV] Support constraint "s" (PR #80201)

2024-01-31 Thread Fangrui Song via cfe-commits
MaskRay wrote: The discussion with GCC seems to suggest we should encourage "s" for metadata section usage. I have some notes about these constraints https://maskray.me/blog/2024-01-30-raw-symbol-names-in-inline-assembly > While the default implementation (gcc/defaults.h) is permissive

[llvm] [clang] [RISCV] Support constraint "s" (PR #80201)

2024-01-31 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-backend-risc-v Author: Fangrui Song (MaskRay) Changes GCC has supported a generic constraint "s" for a long time (since at least 1992), which references a symbol or label with an optional constant offset. "i" is a superset that also supports a constant

[llvm] [clang] [RISCV] Support constraint "s" (PR #80201)

2024-01-31 Thread Fangrui Song via cfe-commits
https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/80201 GCC has supported a generic constraint "s" for a long time (since at least 1992), which references a symbol or label with an optional constant offset. "i" is a superset that also supports a constant integer.