Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BasicAA: Fix assert when indexing address spaces with different sizes #103713

Merged
merged 1 commit into from
Aug 14, 2024

Conversation

arsenm
Copy link
Contributor

@arsenm arsenm commented Aug 14, 2024

Fixes #103500

Copy link
Contributor Author

arsenm commented Aug 14, 2024

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @arsenm and the rest of your teammates on Graphite Graphite

@arsenm arsenm marked this pull request as ready for review August 14, 2024 07:58
@llvmbot
Copy link

llvmbot commented Aug 14, 2024

@llvm/pr-subscribers-llvm-analysis

Author: Matt Arsenault (arsenm)

Changes

Fixes #103500


Full diff: https://github.com/llvm/llvm-project/pull/103713.diff

2 Files Affected:

  • (modified) llvm/lib/Analysis/BasicAliasAnalysis.cpp (+3)
  • (added) llvm/test/Analysis/BasicAA/issue103500.ll (+18)
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
index 7bfb23e14aaa79..e11d019b90fa67 100644
--- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
@@ -354,6 +354,9 @@ struct CastedValue {
   }
 
   bool hasSameCastsAs(const CastedValue &Other) const {
+    if (V->getType() != Other.V->getType())
+      return false;
+
     if (ZExtBits == Other.ZExtBits && SExtBits == Other.SExtBits &&
         TruncBits == Other.TruncBits)
       return true;
diff --git a/llvm/test/Analysis/BasicAA/issue103500.ll b/llvm/test/Analysis/BasicAA/issue103500.ll
new file mode 100644
index 00000000000000..3532e6e9479e5b
--- /dev/null
+++ b/llvm/test/Analysis/BasicAA/issue103500.ll
@@ -0,0 +1,18 @@
+; RUN: opt -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output %s 2>&1 | FileCheck %s
+
+target datalayout = "p0:64:64-p5:32:32"
+
+; CHECK: Function: indexing_different_sized_addrspace: 2 pointers, 0 call sites
+; CHECK: MayAlias:	i32* %gep.in.0, i32 addrspace(5)* %gep.in.5.1
+
+define i1 @indexing_different_sized_addrspace(ptr addrspace(5) %arg, i64 %arg1, i32 %arg2) {
+bb:
+  %arg.addrspacecast = addrspacecast ptr addrspace(5) %arg to ptr
+  %gep.in.5 = getelementptr i8, ptr addrspace(5) %arg, i32 16
+  %gep.in.0 = getelementptr i8, ptr %arg.addrspacecast, i64 %arg1
+  %gep.in.5.1 = getelementptr i8, ptr addrspace(5) %gep.in.5, i32 %arg2
+  %load.0 = load i32, ptr %gep.in.0, align 4
+  %load.1 = load i32, ptr addrspace(5) %gep.in.5.1, align 4
+  %cmp = icmp slt i32 %load.0, %load.1
+  ret i1 %cmp
+}

Copy link
Contributor

@nikic nikic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor Author

arsenm commented Aug 14, 2024

Merge activity

  • Aug 14, 6:51 AM EDT: @arsenm started a stack merge that includes this pull request via Graphite.
  • Aug 14, 6:53 AM EDT: @arsenm merged this pull request with Graphite.

@arsenm arsenm merged commit 9c7c3f9 into main Aug 14, 2024
12 checks passed
@arsenm arsenm deleted the users/arsenm/issue103500 branch August 14, 2024 10:53
bwendling pushed a commit to bwendling/llvm-project that referenced this pull request Aug 15, 2024
nikic referenced this pull request Aug 20, 2024
…KnownNonEqual`; NFC

Downstream hit this assert, since it doesn't really make any
difference, just change code to return false.
sarnex added a commit to intel/llvm that referenced this pull request Sep 11, 2024
… (#103713) (#15347)

Cherry pick llvm/llvm-project#103713 to fix AMD
postcommit testing.

Closes: #15227

Co-authored-by: Matt Arsenault <Matthew.Arsenault@amd.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[AMDGPU] Assertion "Testing equality of non-equal types!" hit in GVN pass
3 participants