aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/ThreadSafety.cpp
diff options
context:
space:
mode:
authorMichael Maitland <michaeltmaitland@gmail.com>2023-12-08 13:24:27 -0500
committerGitHub <noreply@github.com>2023-12-08 13:24:27 -0500
commit6f9cb9a75ce20db2ee85cd22ddadc3bed2c450c0 (patch)
tree3722935a4612a476c319462d331fc236f0ae54e5 /clang/lib/Analysis/ThreadSafety.cpp
parent94c837345c27e173284a85471d4efda19eded08e (diff)
downloadllvm-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