aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
diff options
context:
space:
mode:
authorSirui Mu <msrlancern@gmail.com>2025-09-18 21:43:08 +0800
committerGitHub <noreply@github.com>2025-09-18 21:43:08 +0800
commit81aaca359b2d5a6529d9620fa4181c4d89c83c7c (patch)
tree493e46cfba083191a85ffc9b0aed20dc1371b80f /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
parent29620d9b8971c4eea7f5407ca206ba04c6f78d01 (diff)
downloadllvm-81aaca359b2d5a6529d9620fa4181c4d89c83c7c.zip
llvm-81aaca359b2d5a6529d9620fa4181c4d89c83c7c.tar.gz
llvm-81aaca359b2d5a6529d9620fa4181c4d89c83c7c.tar.bz2
[CIR][NFC] Use TableGen to generate LLVM lowering patterns (#159390)
Most lowering patterns have exactly the same class declaration with different names and different `matchAndRewrite` implementations, yet their declaration occupies near 1000 lines of code in `LowerToLLVM.h`, making this file difficult to read and boring to maintain. In this patch, I migrate their declarations to be generated from `CIROps.td` using `clang-tblgen`. Some extra `CIR_Op` TableGen fields are introduced to help this: - The `CIR_Op` class now defines a `bit` field `hasLLVMLowering` which defaults to `true`. If its value is `true`, `clang-tblgen` would generate an LLVM lowering pattern declaration for the operation. - Some LLVM lowering patterns has bounded recursion. This could be enabled by setting the `isLLVMLoweringRecursive` field in a `CIR_Op` record to `true`. - Some LLVM lowering patterns have defined additional class members. They could be listed in the `extraLLVMLoweringPatternDecl` field. Note that in the incubator we have a similar TableGen code generator that generates LLVM lowering code for CIR builtin ops which has a one-to-one correspondence to LLVM dialect operations. This patch does NOT try to upstream it. Some additional noticeable changes made by this patch: - This patch adds the `dataLayout` member to every LLVM lowering pattern class to make the job easier for a code generator. In the future we might want to add more members to the lowering patterns, and we will need to update the code generator to make such changes.
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp')
0 files changed, 0 insertions, 0 deletions