diff options
| author | Thurston Dang <thurston@google.com> | 2024-07-03 12:40:12 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-03 12:40:12 -0700 |
| commit | 7002ecb4c6dba2050b321699e0e17eb890c3ca2c (patch) | |
| tree | 543baf0193b617998cb44413b1f4a6b4e6a575c6 /llvm/lib/Transforms/Utils/SimplifyCFG.cpp | |
| parent | c02e8f762a410e55581866c43636efcd6504c1bd (diff) | |
| download | llvm-7002ecb4c6dba2050b321699e0e17eb890c3ca2c.zip llvm-7002ecb4c6dba2050b321699e0e17eb890c3ca2c.tar.gz llvm-7002ecb4c6dba2050b321699e0e17eb890c3ca2c.tar.bz2 | |
[msan] Convert vector shadow to scalar before zext (#96722)
zext does not allow converting vector shadow to scalar, so we must
manually convert it prior to calling zext in materializeOneCheck, for
which the 'ConvertedShadow' parameter isn't actually guaranteed to be
scalar (1). Note that it is safe/no-op to call convertShadowToScalar on
a shadow that is already scalar.
In contrast, the storeOrigin function already converts the (potentially
vector) shadow to scalar; we add a comment to note why it is load
bearing.
(1) In materializeInstructionChecks():
"// Disable combining in some cases. TrackOrigins checks each shadow to
pick
// correct origin.
bool Combine = !MS.TrackOrigins;
...
if (!Combine) {
materializeOneCheck(IRB, ConvertedShadow, ShadowData.Origin);
continue;
}"
Diffstat (limited to 'llvm/lib/Transforms/Utils/SimplifyCFG.cpp')
0 files changed, 0 insertions, 0 deletions
