aboutsummaryrefslogtreecommitdiff
path: root/tools/opt
diff options
context:
space:
mode:
authorKarl Schimpf <kschimpf@google.com>2013-06-05 09:34:46 -0700
committerKarl Schimpf <kschimpf@google.com>2013-06-05 09:34:46 -0700
commit69a8e32d4f4451e11cda6d48b318ba4f7e01c683 (patch)
tree4bfc77a36fa3e648b7d0d9b7a463c6b1180add47 /tools/opt
parent70fa5e76093e7566e92786d5cc25ef1792b7cea1 (diff)
Change CL flag -pnacl-freeze to -bitcode-format={llvm,pnacl}.
Also removes flag from llvm-as.cpp and LTOCodeGenerator.cpp since one should call pnacl-finalize to transform pexe's to PNaCl bitcode form. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3469 R=dschuff@chromium.org, jvoung@chromium.org Review URL: https://codereview.chromium.org/16295014
Diffstat (limited to 'tools/opt')
-rw-r--r--tools/opt/opt.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 135b36e3db..81006c3507 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -171,10 +171,20 @@ DefaultDataLayout("default-data-layout",
cl::value_desc("layout-string"), cl::init(""));
// @LOCALMOD-BEGIN
-static cl::opt<bool>
-GeneratePNaClBitcode("pnacl-freeze",
- cl::desc("Generate a pnacl-frozen bitcode file"),
- cl::init(false));
+enum BcFormat {
+ LLVMFormat,
+ PNaClFormat
+};
+
+static cl::opt<BcFormat>
+BitcodeFormat(
+ "bitcode-format",
+ cl::desc("Define format of generated bitcode file:"),
+ cl::values(
+ clEnumValN(LLVMFormat, "llvm", "LLVM bitcode (default)"),
+ clEnumValN(PNaClFormat, "pnacl", "PNaCl bitcode"),
+ clEnumValEnd),
+ cl::init(LLVMFormat));
// @LOCALMOD-END
// ---------- Define Printers for module and function passes ------------
@@ -891,10 +901,17 @@ int main(int argc, char **argv) {
// @LOCALMOD-BEGIN
// Write bitcode to the output.
if (!NoOutput && !AnalyzeOnly && !OutputAssembly) {
- if (GeneratePNaClBitcode)
- NaClWriteBitcodeToFile(M.get(), Out->os());
- else
- WriteBitcodeToFile(M.get(), Out->os());
+ switch (BitcodeFormat) {
+ case LLVMFormat:
+ WriteBitcodeToFile(M.get(), Out->os());
+ break;
+ case PNaClFormat:
+ NaClWriteBitcodeToFile(M.get(), Out->os());
+ break;
+ default:
+ errs() << "Don't understand bitcode format for generated bitcode.\n";
+ return 1;
+ }
}
// @LOCALMOD-END