-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
crucible-llvm: Skip llvm.experimental.noalias.scope.decl and llvm.dbg…
….assign (#1205) This adds `llvm.experimental.noalias.scope.decl` and `llvm.dbg.assign` to the list of LLVM intrinsics that `crucible-llvm` skips over during simulation. Doing so unlocks more support for recent LLVM versions. It is conceivable that we may want to reason about these intrinsics at a deeper level some day. If so, see: * #1196 (comment) for how this would be done for `llvm.experimental.noalias.scope.decl` * #1204 (comment) for how this would be done for `llvm.dbg.assign` Fixes #1196. Fixes #1204.
- Loading branch information
1 parent
f8fca6e
commit 3ed848a
Showing
5 changed files
with
26 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
void foo(int* restrict p0, int* restrict p1) { | ||
*p0 = *p1; | ||
} | ||
|
||
__attribute__((noinline)) void test_inline_foo(int* p0, int* p1) { | ||
foo(p0, p1); | ||
} | ||
|
||
int main(void) { | ||
int p0 = 0; | ||
int p1 = 1; | ||
test_inline_foo(&p0, &p1); | ||
return 0; | ||
} |
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 @@ | ||
[Crux] Overall status: Valid. |
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,8 @@ | ||
__attribute__((noinline)) int foo(int x[2]) { | ||
return x[0]; | ||
} | ||
|
||
int main(void) { | ||
int x[2] = { 0, 0 }; | ||
return foo(x); | ||
} |
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 @@ | ||
[Crux] Overall status: Valid. |