diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2009-09-28 01:16:42 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2009-09-28 01:16:42 +0000 |
commit | efc9763468e38a7bd108cc71136455563d69e245 (patch) | |
tree | 57f66baa597d00f1cb95e9b22f19d0164c564343 /llvm/utils/TableGen | |
parent | b7787297f5156ea040287bbbbaa59e429222f72f (diff) | |
download | bcm5719-llvm-efc9763468e38a7bd108cc71136455563d69e245.tar.gz bcm5719-llvm-efc9763468e38a7bd108cc71136455563d69e245.zip |
Add a way to query the number of input files.
llvm-svn: 82957
Diffstat (limited to 'llvm/utils/TableGen')
-rw-r--r-- | llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp b/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp index 2800678f8c5..f9a447adffa 100644 --- a/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp +++ b/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp @@ -976,8 +976,22 @@ void CheckForSuperfluousOptions (const RecordVector& Edges, } } -/// EmitCaseTest1Arg - Helper function used by -/// EmitCaseConstructHandler. +/// EmitCaseTest0Args - Helper function used by EmitCaseConstructHandler(). +bool EmitCaseTest0Args(const std::string& TestName, raw_ostream& O) { + if (TestName == "single_input_file") { + O << "InputFilenames.size() == 1"; + return true; + } + else if (TestName == "multiple_input_files") { + O << "InputFilenames.size() > 1"; + return true; + } + + return false; +} + + +/// EmitCaseTest1Arg - Helper function used by EmitCaseConstructHandler(). bool EmitCaseTest1Arg(const std::string& TestName, const DagInit& d, const OptionDescriptions& OptDescs, @@ -1021,8 +1035,7 @@ bool EmitCaseTest1Arg(const std::string& TestName, return false; } -/// EmitCaseTest2Args - Helper function used by -/// EmitCaseConstructHandler. +/// EmitCaseTest2Args - Helper function used by EmitCaseConstructHandler(). bool EmitCaseTest2Args(const std::string& TestName, const DagInit& d, unsigned IndentLevel, @@ -1101,6 +1114,8 @@ void EmitCaseTest(const DagInit& d, unsigned IndentLevel, EmitLogicalOperationTest(d, "||", IndentLevel, OptDescs, O); else if (TestName == "not") EmitLogicalNot(d, IndentLevel, OptDescs, O); + else if (EmitCaseTest0Args(TestName, O)) + return; else if (EmitCaseTest1Arg(TestName, d, OptDescs, O)) return; else if (EmitCaseTest2Args(TestName, d, IndentLevel, OptDescs, O)) @@ -2043,7 +2058,8 @@ void EmitRegisterPlugin(int Priority, raw_ostream& O) { /// EmitIncludes - Emit necessary #include directives and some /// additional declarations. void EmitIncludes(raw_ostream& O) { - O << "#include \"llvm/CompilerDriver/CompilationGraph.h\"\n" + O << "#include \"llvm/CompilerDriver/BuiltinOptions.h\"\n" + << "#include \"llvm/CompilerDriver/CompilationGraph.h\"\n" << "#include \"llvm/CompilerDriver/ForceLinkageMacros.h\"\n" << "#include \"llvm/CompilerDriver/Plugin.h\"\n" << "#include \"llvm/CompilerDriver/Tool.h\"\n\n" |