-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
isl_scheduler.c: graph_find_compressed_node: look up node in correct …
…graph The function graph_find_compressed_node has a fail-safe that checks that the pointer recorded in the isl_id actually corresponds to a node in the graph. However, it failed to take into account that the pointer refers to the original dependence graph, while the graph in which the node is looked up may be subgraph (with different node pointers). Check that the node is valid for the original graph rather than the current graph and if the current graph is not the same as the original graph, then look up the corresponding node in the current graph. The new test case is different from the one that was reported by Michael Kruse because the latter does not appear to have a valid solution. The test case is checked using the isl_schedule (and isl_schedule_cmp) application(s) because it is easier to introduce test cases this way (both the current test case and any future scheduling test cases). Reported-by: Michael Kruse <[email protected]> Signed-off-by: Sven Verdoolaege <[email protected]>
- Loading branch information
Sven Verdoolaege
committed
Jul 30, 2017
1 parent
2dcebe4
commit d5b4535
Showing
6 changed files
with
48 additions
and
2 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/bin/sh | ||
|
||
EXEEXT=@EXEEXT@ | ||
GREP=@GREP@ | ||
SED=@SED@ | ||
srcdir=@srcdir@ | ||
|
||
failed=0 | ||
|
||
for i in $srcdir/test_inputs/schedule/*.sc; do | ||
echo $i; | ||
base=`basename $i .sc` | ||
test=test-$base.st | ||
dir=`dirname $i` | ||
ref=$dir/$base.st | ||
options=`$GREP 'OPTIONS:' $i | $SED 's/.*://'` | ||
(./isl_schedule$EXEEXT $options < $i > $test && | ||
./isl_schedule_cmp$EXEEXT $ref $test && rm $test) || failed=1 | ||
done | ||
|
||
test $failed -eq 0 || exit |
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,5 @@ | ||
# Check that the Feautrier schedule is not confused by | ||
# compressed nodes in a subgraph of the original dependence graph. | ||
# OPTIONS: --schedule-algorithm=feautrier | ||
domain: { A[]; B[0]; C[] } | ||
validity: { A[] -> B[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,11 @@ | ||
domain: "{ B[0]; C[]; A[] }" | ||
child: | ||
set: | ||
- filter: "{ B[i0]; A[] }" | ||
child: | ||
schedule: "[{ B[i0] -> [(1)]; A[] -> [(0)] }]" | ||
child: | ||
set: | ||
- filter: "{ A[] }" | ||
- filter: "{ B[i0] }" | ||
- filter: "{ C[] }" |