-
Notifications
You must be signed in to change notification settings - Fork 11.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[mlir][OpenMP] Add custom parser and pretty printer for parallel cons…
…truct Reviewers: jdoerfert Subscribers: yaxunl, guansong, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, sstefan1, msifontes Tags: #mlir Differential Revision: https://reviews.llvm.org/D81264
- Loading branch information
1 parent
d7deef1
commit 245b299
Showing
4 changed files
with
374 additions
and
5 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
// RUN: mlir-opt -split-input-file -verify-diagnostics %s | ||
|
||
func @unknown_clause() { | ||
// expected-error@+1 {{invalid is not a valid clause for the omp.parallel operation}} | ||
omp.parallel invalid { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @if_once(%n : i1) { | ||
// expected-error@+1 {{at most one if clause can appear on the omp.parallel operation}} | ||
omp.parallel if(%n) if(%n) { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @num_threads_once(%n : si32) { | ||
// expected-error@+1 {{at most one num_threads clause can appear on the omp.parallel operation}} | ||
omp.parallel num_threads(%n : si32) num_threads(%n : si32) { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @private_once(%n : memref<i32>) { | ||
// expected-error@+1 {{at most one private clause can appear on the omp.parallel operation}} | ||
omp.parallel private(%n : memref<i32>) private(%n : memref<i32>) { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @firstprivate_once(%n : memref<i32>) { | ||
// expected-error@+1 {{at most one firstprivate clause can appear on the omp.parallel operation}} | ||
omp.parallel firstprivate(%n : memref<i32>) firstprivate(%n : memref<i32>) { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @shared_once(%n : memref<i32>) { | ||
// expected-error@+1 {{at most one shared clause can appear on the omp.parallel operation}} | ||
omp.parallel shared(%n : memref<i32>) shared(%n : memref<i32>) { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @copyin_once(%n : memref<i32>) { | ||
// expected-error@+1 {{at most one copyin clause can appear on the omp.parallel operation}} | ||
omp.parallel copyin(%n : memref<i32>) copyin(%n : memref<i32>) { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @default_once() { | ||
// expected-error@+1 {{at most one default clause can appear on the omp.parallel operation}} | ||
omp.parallel default(private) default(firstprivate) { | ||
} | ||
|
||
return | ||
} | ||
|
||
// ----- | ||
|
||
func @proc_bind_once() { | ||
// expected-error@+1 {{at most one proc_bind clause can appear on the omp.parallel operation}} | ||
omp.parallel proc_bind(close) proc_bind(spread) { | ||
} | ||
|
||
return | ||
} |
Oops, something went wrong.