Make better use of getStringOperand() for MetadataExtractor.

This change also cleans up some of the code from a prior rebase.
It also captures two additional broken metadata cases (from corrupt
object slot and/or pragma metadata).

Change-Id: I61e161d2b0e211349683e36160d564493d802a12
diff --git a/lib/Renderscript/RSEmbedInfo.cpp b/lib/Renderscript/RSEmbedInfo.cpp
index 731e778..65f7ed7 100644
--- a/lib/Renderscript/RSEmbedInfo.cpp
+++ b/lib/Renderscript/RSEmbedInfo.cpp
@@ -123,7 +123,7 @@
     }
     s << "isThreadable: " << ((isThreadable) ? "yes" : "no") << "\n";
 
-    if (buildChecksum != nullptr) {
+    if (buildChecksum != nullptr && buildChecksum[0]) {
       s << "buildChecksum: " << buildChecksum << "\n";
     }
 
diff --git a/lib/Renderscript/RSForEachExpand.cpp b/lib/Renderscript/RSForEachExpand.cpp
index 9e9b48c..fc05426 100644
--- a/lib/Renderscript/RSForEachExpand.cpp
+++ b/lib/Renderscript/RSForEachExpand.cpp
@@ -358,8 +358,6 @@
     llvm::PHINode *IV;
 
     CondBB = Builder.GetInsertBlock();
-    // DT = &getAnalysis<DominatorTree>();
-    // LI = &getAnalysis<LoopInfo>();
     AfterBB = llvm::SplitBlock(CondBB, Builder.GetInsertPoint(), nullptr, nullptr);
     HeaderBB = llvm::BasicBlock::Create(*Context, "Loop", CondBB->getParent());
 
diff --git a/lib/Renderscript/RSScriptGroupFusion.cpp b/lib/Renderscript/RSScriptGroupFusion.cpp
index 7ee79bf..e16445c 100644
--- a/lib/Renderscript/RSScriptGroupFusion.cpp
+++ b/lib/Renderscript/RSScriptGroupFusion.cpp
@@ -57,7 +57,7 @@
   metadata.extract();
 
   const char* functionName = metadata.getExportForEachNameList()[slot];
-  if (functionName == nullptr) {
+  if (functionName == nullptr || !functionName[0]) {
     return nullptr;
   }