aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2018-07-07 12:02:08 +1000
committerTimothy Arceri <[email protected]>2018-08-29 16:02:05 +1000
commitfef6325e587173f2146a8aab75847144d2f802ff (patch)
tree2f86555431047c9a680945d573f76f1699009cb0 /src/compiler
parent1e40f6948310be07abb2d0198e6602769892cdac (diff)
nir: always attempt to find loop terminators
This will help later patches with unrolling loops that end with a break i.e. loops the always exit on their first interation. Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/nir/nir_loop_analyze.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler/nir/nir_loop_analyze.c b/src/compiler/nir/nir_loop_analyze.c
index d564296aa67..5454b7691ba 100644
--- a/src/compiler/nir/nir_loop_analyze.c
+++ b/src/compiler/nir/nir_loop_analyze.c
@@ -717,13 +717,6 @@ get_loop_info(loop_info_state *state, nir_function_impl *impl)
}
}
- /* Induction analysis needs invariance information so get that first */
- compute_invariance_information(state);
-
- /* We have invariance information so try to find induction variables */
- if (!compute_induction_information(state))
- return;
-
/* Try to find all simple terminators of the loop. If we can't find any,
* or we find possible terminators that have side effects then bail.
*/
@@ -737,6 +730,13 @@ get_loop_info(loop_info_state *state, nir_function_impl *impl)
return;
}
+ /* Induction analysis needs invariance information so get that first */
+ compute_invariance_information(state);
+
+ /* We have invariance information so try to find induction variables */
+ if (!compute_induction_information(state))
+ return;
+
/* Run through each of the terminators and try to compute a trip-count */
find_trip_count(state);