Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[AssumeBundles] Enforce constraints on the operand bundle of llvm.assume
Summary: Add verification that operand bundles on an llvm.assume are well formed to the verify pass. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75269
- Loading branch information
Showing
6 changed files
with
58 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
; RUN: not opt -verify < %s 2>&1 | FileCheck %s | ||
|
||
declare void @llvm.assume(i1) | ||
|
||
define void @func(i32* %P, i32 %P1, i32* %P2, i32* %P3) { | ||
; CHECK: tags must be valid attribute names | ||
call void @llvm.assume(i1 true) ["adazdazd"()] | ||
; CHECK: the second argument should be a constant integral value | ||
call void @llvm.assume(i1 true) ["align"(i32* %P, i32 %P1)] | ||
; CHECK: to many arguments | ||
call void @llvm.assume(i1 true) ["align"(i32* %P, i32 8, i32 8)] | ||
; CHECK: this attribute should have 2 arguments | ||
call void @llvm.assume(i1 true) ["align"(i32* %P)] | ||
; CHECK: this attribute has no argument | ||
call void @llvm.assume(i1 true) ["align"(i32* %P, i32 4), "cold"(i32* %P)] | ||
; CHECK: this attribute should have one argument | ||
call void @llvm.assume(i1 true) ["noalias"()] | ||
ret void | ||
} |