diff options
author | Slava Shklyaev <slavash@google.com> | 2020-03-27 16:46:49 +0000 |
---|---|---|
committer | Slava Shklyaev <slavash@google.com> | 2020-04-06 18:50:08 +0100 |
commit | 22672efdab786bed8624e171b9e425fbb3bf6ea8 (patch) | |
tree | e5aa91acd9b076939464bdb1b3687ec134fb3b22 /nn/runtime/test/Android.bp | |
parent | d9dc001c8894d464d7708135d4d551ef5224762b (diff) | |
download | ml-22672efdab786bed8624e171b9e425fbb3bf6ea8.tar.gz |
Fix control flow partial CPU fallback bug
Before this change, ExecutionPlan::Controller::mLastStepIndex is only
updated at the beginning of the ExecutionPlan::next() call. When
interpreted control flow is involved, this call might result in several
logical steps being processed until an ExecutionStep is reached.
When an interpreted CF loop terminates successfully but the next step is
an ExecutionStep that fails, ExecutionPlan::fallback() restarts from
mLastStepIndex, which happens to be the index of the WhileStep. This
results in the loop being executed again. This happens forever.
This change fixes the bug by updating mLastStepIndex when
nextCompound(const ExecutionStep* ...) is called.
This change renames mLastStepIndex to mFallbackNextStepIndex to reflect
its usage.
Fix: 152623151
Test: NNT_static
Change-Id: Iff3b68f541adb8facf078e968abac2a6ae8e74c1
Diffstat (limited to 'nn/runtime/test/Android.bp')
-rw-r--r-- | nn/runtime/test/Android.bp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/nn/runtime/test/Android.bp b/nn/runtime/test/Android.bp index fe14001b8..f25080605 100644 --- a/nn/runtime/test/Android.bp +++ b/nn/runtime/test/Android.bp @@ -122,6 +122,7 @@ cc_defaults { // "TestOpenmpSettings.cpp", "TestCompilationCaching.cpp", "TestCompliance.cpp", + "TestControlFlowExecution.cpp", "TestExecution.cpp", "TestExtensions.cpp", "TestIntrospectionControl.cpp", |