[PATCH] D89830: [ValuteTracking] Handle alignment assume bundles
Alexander Richardson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 27 05:18:00 PDT 2020
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG565f4e72dafa: [ValueTracking] Add more tests for alignment assume bundles (authored by arichardson).
Changed prior to commit:
https://reviews.llvm.org/D89830?vs=299490&id=300960#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D89830/new/
https://reviews.llvm.org/D89830
Files:
llvm/unittests/Analysis/ValueTrackingTest.cpp
Index: llvm/unittests/Analysis/ValueTrackingTest.cpp
===================================================================
--- llvm/unittests/Analysis/ValueTrackingTest.cpp
+++ llvm/unittests/Analysis/ValueTrackingTest.cpp
@@ -19,6 +19,7 @@
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Support/SourceMgr.h"
+#include "llvm/Transforms/Utils/Local.h"
#include "gtest/gtest.h"
using namespace llvm;
@@ -938,6 +939,34 @@
}
}
+TEST_F(ValueTrackingTest, computePtrAlignment) {
+ parseAssembly("declare i1 @f_i1()\n"
+ "declare i8* @f_i8p()\n"
+ "declare void @llvm.assume(i1)\n"
+ "define void @test() {\n"
+ " %A = call i8* @f_i8p()\n"
+ " %cond = call i1 @f_i1()\n"
+ " %CxtI = add i32 0, 0\n"
+ " br i1 %cond, label %BB1, label %EXIT\n"
+ "BB1:\n"
+ " %CxtI2 = add i32 0, 0\n"
+ " %cond2 = call i1 @f_i1()\n"
+ " call void @llvm.assume(i1 true) [ \"align\"(i8* %A, i64 16) ]\n"
+ " br i1 %cond2, label %BB2, label %EXIT\n"
+ "BB2:\n"
+ " %CxtI3 = add i32 0, 0\n"
+ " ret void\n"
+ "EXIT:\n"
+ " ret void\n"
+ "}");
+ AssumptionCache AC(*F);
+ DominatorTree DT(*F);
+ DataLayout DL = M->getDataLayout();
+ EXPECT_EQ(getKnownAlignment(A, DL, CxtI, &AC, &DT), Align(1));
+ EXPECT_EQ(getKnownAlignment(A, DL, CxtI2, &AC, &DT), Align(1));
+ EXPECT_EQ(getKnownAlignment(A, DL, CxtI3, &AC, &DT), Align(16));
+}
+
TEST_F(ComputeKnownBitsTest, ComputeKnownBits) {
parseAssembly(
"define i32 @test(i32 %a, i32 %b) {\n"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D89830.300960.patch
Type: text/x-patch
Size: 1762 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201027/556c652d/attachment.bin>
More information about the llvm-commits
mailing list