[all-commits] [llvm/llvm-project] 7d7252: [AArch64] Fix STG instruction being moved past mem...
Oliver Stannard via All-commits
all-commits at lists.llvm.org
Tue Dec 3 02:33:14 PST 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7d7252590916bcd540c7bd4158b9d52af7a0d547
https://github.com/llvm/llvm-project/commit/7d7252590916bcd540c7bd4158b9d52af7a0d547
Author: Oliver Stannard <oliver.stannard at arm.com>
Date: 2024-12-03 (Tue, 03 Dec 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
A llvm/test/CodeGen/AArch64/stack-tagging-merge-past-memcpy.mir
Log Message:
-----------
[AArch64] Fix STG instruction being moved past memcpy (#117191)
When merging STG instructions used for AArch64 stack tagging, we were
stopping on reaching a load or store instruction, but not calls, so it
was possible for an STG to be moved past a call to memcpy.
This test case (reduced from fuzzer-generated C code) was the result of
StackColoring merging allocas A and B into one stack slot, and
StackSafetyAnalysis proving that B does not need tagging, so we end up
with tagged and untagged objects in the same stack slot. The tagged
object (A) is live first, so it is important that it's memory is
restored to the background tag before it gets reused to hold B.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list