Enable DeviceMemoryTest for control flow models

Also corrects some wordings related to control flow.

Bug: 149693818
Test: NNT_Static
Change-Id: If16eee0613f9166f0688b4289f68a389e92e6e2f
Merged-In: If16eee0613f9166f0688b4289f68a389e92e6e2f
(cherry picked from commit 4c6e1c89566f46e0a1fc824f18523080c33ea7d2)
diff --git a/runtime/Memory.cpp b/runtime/Memory.cpp
index 80a4f99..6c48d87 100644
--- a/runtime/Memory.cpp
+++ b/runtime/Memory.cpp
@@ -422,7 +422,7 @@
     LOG(INFO) << "    Zero point: " << toString(operand.zeroPoint);
     LOG(INFO) << "    Extra params: " << toString(operand.extraParams);
     LOG(INFO) << "    Dimensions: " << toString(desc.dimensions);
-    LOG(INFO) << "    Submodels [" << desc.preparedModels.size() << "]:";
+    LOG(INFO) << "    Prepared models [" << desc.preparedModels.size() << "]:";
     for (const auto* preparedModel : desc.preparedModels) {
         LOG(INFO) << "        service = " << preparedModel->getDevice()->getName();
     }
@@ -457,7 +457,10 @@
         logMemoryDescriptorToInfo(mDesc, mOperand.value());
     }
     std::set<const Device*> devices = getDevices(mDesc);
-    if (devices.size() == 1) {
+    if (devices.empty()) {
+        // This can happen with interpreted control flow.
+        mAllocator = nullptr;
+    } else if (devices.size() == 1) {
         mAllocator = *devices.begin();
         VLOG(MEMORY) << "Using " << mAllocator->getName() << " as allocator.";
     } else {