diff options
author | quic_hchandel <hchandel@qti.qualcomm.com> | 2025-09-03 12:35:38 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-03 12:35:38 +0530 |
commit | d0363815dd4acde08168e930cb529ee10f86b838 (patch) | |
tree | c372ff7248283530e9d86af3acc9ca5c98ed2028 /llvm/lib/Support/CommandLine.cpp | |
parent | 655cdf2e45a108177f013a59f108d17a8a267783 (diff) | |
download | llvm-d0363815dd4acde08168e930cb529ee10f86b838.zip llvm-d0363815dd4acde08168e930cb529ee10f86b838.tar.gz llvm-d0363815dd4acde08168e930cb529ee10f86b838.tar.bz2 |
[RISCV] Add changes to have better coverage for qc.insb and qc.insbi (#154135)
Before this patch, the selection for `QC_INSB` and `QC_INSBI` entirely
happens in C++, and does not support more than one non-constant input.
This patch seeks to rectify this shortcoming, by moving the C++ into a
target-specific DAGCombine, and adding `RISCV::QC_INSB`. One advantage
is this simplifies the code for handling `QC_INSBI`, as the C++ no
longer needs to choose between the two instructions based on the
inserted value (this is still done, but via ISel Patterns).
Another advantage of the DAGCombine is that this introduction can also
shift the inserted value to the `QC_INSB`, which our patterns need (and
were previously doing to the constant), and this shift can be
CSE'd/optimised with any prior shifts, if they exist. This allows the
inserted value to be variable, rather than a constant.
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions