aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/DFAPacketizer.cpp
diff options
context:
space:
mode:
authorVitaly Cheptsov <vit9696@avp.su>2023-03-29 20:55:51 +0100
committerAlex Bradbury <asb@igalia.com>2023-03-29 20:55:51 +0100
commitf5e63f8fc9f492944b8432d80c1c49051a7d600a (patch)
tree39379f90d0a54a5f17be36d5ac8a924180fb9354 /llvm/lib/CodeGen/DFAPacketizer.cpp
parent1cd434d007584d84f2c2dd3d5bbfdc1f12b9a7b2 (diff)
downloadllvm-f5e63f8fc9f492944b8432d80c1c49051a7d600a.zip
llvm-f5e63f8fc9f492944b8432d80c1c49051a7d600a.tar.gz
llvm-f5e63f8fc9f492944b8432d80c1c49051a7d600a.tar.bz2
[RISCV] Support emulated TLS
As discussed earlier in the [GitHub issue](https://github.com/llvm/llvm-project/issues/59500), currently LLVM generates invalid code when emulated TLS is used. There were attempts to resolve this previously (D102527), but they were not merged because the component owners raised concerns about emulated TLS efficiency. The current state of the art is that: - OpenBSD team, which raised the initial issue, simply has [patches downstream](https://github.com/openbsd/src/blob/a0747c9/gnu/llvm/llvm/lib/Target/RISCV/RISCVISelLowering.cpp#L2850-L2852). - Our team, which raised the GH issue, has patches downstream as well. We also do not use `malloc` or any [dynamic allocations](https://github.com/llvm/llvm-project/issues/59500#issuecomment-1349046835) with emulated TLS, so the concerns raised in the original issue does not apply to us. - GCC compatibility is broken, because GCC supports emulated TLS. - RISC-V is the only architecture in LLVM that does not support emulated TLS, and work is being done to at least warn the users about it (D143619). With all these in mind I believe it is important to address the consumers' needs especially given that there is little to no maintenance downsides. Differential Revision: https://reviews.llvm.org/D143708
Diffstat (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp')
0 files changed, 0 insertions, 0 deletions