diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-06 16:34:12 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-06 16:34:12 +0000 |
commit | a8276c53233579831b94bab4acec45e7d4c23c60 (patch) | |
tree | 3f5fd0d98b8daaeb0931ca6df0d2f23365fe50d2 /llvm/tools/llvmc2/Core.cpp | |
parent | cb2e6366069f3017afa535517e4473cd672a4eab (diff) | |
download | bcm5719-llvm-a8276c53233579831b94bab4acec45e7d4c23c60.tar.gz bcm5719-llvm-a8276c53233579831b94bab4acec45e7d4c23c60.zip |
Code reorg
llvm-svn: 50722
Diffstat (limited to 'llvm/tools/llvmc2/Core.cpp')
-rw-r--r-- | llvm/tools/llvmc2/Core.cpp | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/llvm/tools/llvmc2/Core.cpp b/llvm/tools/llvmc2/Core.cpp deleted file mode 100644 index d08ee7c00fa..00000000000 --- a/llvm/tools/llvmc2/Core.cpp +++ /dev/null @@ -1,115 +0,0 @@ -//===--- Core.cpp - The LLVM Compiler Driver --------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open -// Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Core driver abstractions. -// -//===----------------------------------------------------------------------===// - -#include "Core.h" -#include "Utility.h" - -#include "llvm/ADT/STLExtras.h" -#include "llvm/ADT/StringExtras.h" -#include "llvm/Support/CommandLine.h" - -#include <algorithm> -#include <iostream> -#include <stdexcept> - -using namespace llvm; -using namespace llvmcc; - -extern cl::list<std::string> InputFilenames; -extern cl::opt<std::string> OutputFilename; -extern cl::opt<bool> VerboseMode; - -namespace { - void print_string (const std::string& str) { - std::cerr << str << ' '; - } -} - -int llvmcc::Action::Execute() { - if (VerboseMode) { - std::cerr << Command_ << " "; - std::for_each(Args_.begin(), Args_.end(), print_string); - std::cerr << '\n'; - } - return ExecuteProgram(Command_, Args_); -} - -int llvmcc::CompilationGraph::Build (const sys::Path& tempDir) const { - sys::Path In(InputFilenames.at(0)), Out; - - // Find out which language corresponds to the suffix of the first input file - LanguageMap::const_iterator Lang = ExtsToLangs.find(In.getSuffix()); - if (Lang == ExtsToLangs.end()) - throw std::runtime_error("Unknown suffix!"); - - // Find the toolchain corresponding to this language - ToolChainMap::const_iterator ToolsIt = ToolChains.find(Lang->second); - if (ToolsIt == ToolChains.end()) - throw std::runtime_error("Unknown language!"); - ToolChain Tools = ToolsIt->second; - - PathVector JoinList; - - for (cl::list<std::string>::const_iterator B = InputFilenames.begin(), - E = InputFilenames.end(); B != E; ++B) { - In = sys::Path(*B); - - // Pass input file through the toolchain - for (ToolChain::const_iterator B = Tools.begin(), E = Tools.end(); - B != E; ++B) { - - const Tool* CurTool = B->getPtr(); - - // Is this the last step in the chain? - if (llvm::next(B) == E || CurTool->IsLast()) { - JoinList.push_back(In); - break; - } - else { - Out = tempDir; - Out.appendComponent(In.getBasename()); - Out.appendSuffix(CurTool->OutputSuffix()); - Out.makeUnique(true, NULL); - Out.eraseFromDisk(); - } - - if (CurTool->GenerateAction(In, Out).Execute() != 0) - throw std::runtime_error("Tool returned error code!"); - - In = Out; Out.clear(); - } - } - - // Pass .o files to linker - const Tool* JoinNode = (--Tools.end())->getPtr(); - - // If the final output name is empty, set it to "a.out" - if (!OutputFilename.empty()) { - Out = sys::Path(OutputFilename); - } - else { - Out = sys::Path("a"); - Out.appendSuffix(JoinNode->OutputSuffix()); - } - - if (JoinNode->GenerateAction(JoinList, Out).Execute() != 0) - throw std::runtime_error("Tool returned error code!"); - - return 0; -} - -void llvmcc::Tool::UnpackValues (const std::string& from, - std::vector<std::string>& to) const { - SplitString(from, to, ","); -} - |