Modify how textual bitcode is injected into pnacl-sz.

Added command line flag "--bitcode-as-text", and triggered
the acceptance of textual bitcode on this flag. To make sure
this isn't added to the sandboxed translator, the reading of
bitcode text is also dependent on the translator not being a
minimal build.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=4222
R=jvoung@chromium.org, stichnot@chromium.org

Review URL: https://codereview.chromium.org/1215463014 .
diff --git a/src/IceCompileServer.cpp b/src/IceCompileServer.cpp
index 23874f0..b7bc72b 100644
--- a/src/IceCompileServer.cpp
+++ b/src/IceCompileServer.cpp
@@ -21,8 +21,6 @@
 
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wunused-parameter"
-// Include code to handle converting textual bitcode records to binary (for
-// INPUT_IS_TEXTUAL_BITCODE).
 #include "llvm/Bitcode/NaCl/NaClBitcodeMungeUtils.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/raw_os_ostream.h"
@@ -39,10 +37,6 @@
 
 namespace {
 
-static_assert(!(BuildDefs::textualBitcode() && PNACL_BROWSER_TRANSLATOR),
-              "Can not define INPUT_IS_TEXTUAL_BITCODE when building browswer "
-              "translator");
-
 // Define a SmallVector backed buffer as a data stream, so that it
 // can hold the generated binary version of the textual bitcode in the
 // input file.
@@ -64,12 +58,12 @@
   llvm::raw_string_ostream ErrStrm(*Err);
   if (std::error_code EC = llvm::readNaClRecordTextAndBuildBitcode(
           Filename, Streamer->BitcodeBuffer, &ErrStrm)) {
-    ErrStrm << EC.message(); // << "\n";
+    ErrStrm << EC.message();
     ErrStrm.flush();
     delete Streamer;
     return nullptr;
   }
-  // ErrStrm.flush();
+  ErrStrm.flush();
   return Streamer;
 }
 
@@ -151,9 +145,13 @@
   } break;
   }
 
+  if (BuildDefs::minimal() && ExtraFlags.getBitcodeAsText())
+    llvm::report_fatal_error("Can't specify 'bitcode-as-text' flag in "
+                             "minimal build");
+
   IceString StrError;
   std::unique_ptr<llvm::DataStreamer> InputStream(
-      BuildDefs::textualBitcode()
+      (!BuildDefs::minimal() && ExtraFlags.getBitcodeAsText())
           ? TextDataStreamer::create(ExtraFlags.getIRFilename(), &StrError)
           : llvm::getDataFileStreamer(ExtraFlags.getIRFilename(), &StrError));
   if (!StrError.empty() || !InputStream) {