diff options
author | Michael Maitland <michaeltmaitland@gmail.com> | 2023-12-08 13:24:27 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-08 13:24:27 -0500 |
commit | 6f9cb9a75ce20db2ee85cd22ddadc3bed2c450c0 (patch) | |
tree | 3722935a4612a476c319462d331fc236f0ae54e5 /clang/lib/Analysis/ThreadSafety.cpp | |
parent | 94c837345c27e173284a85471d4efda19eded08e (diff) | |
download | llvm-6f9cb9a75ce20db2ee85cd22ddadc3bed2c450c0.zip llvm-6f9cb9a75ce20db2ee85cd22ddadc3bed2c450c0.tar.gz llvm-6f9cb9a75ce20db2ee85cd22ddadc3bed2c450c0.tar.bz2 |
[RISCV][GISEL] Legalize G_VAARG through expansion. (#73065)
G_VAARG can be expanded similiar to SelectionDAG::expandVAArg through
LegalizerHelper::lower. This patch implements the lowering through this
style of expansion.
The expansion gets the head of the va_list by loading the pointer to
va_list. Then, the head of the list is adjusted depending on argument
alignment information. This gives a pointer to the element to be read
out of the va_list. Next, the head of the va_list is bumped to the next
element in the list. The new head of the list is stored back to the
original pointer to the head of the va_list so that subsequent G_VAARG
instructions get the next element in the list. Lastly, the element is
loaded from the alignment adjusted pointer constructed earlier.
This change is stacked on #73062.
Diffstat (limited to 'clang/lib/Analysis/ThreadSafety.cpp')
0 files changed, 0 insertions, 0 deletions