[llvm-commits] [llvm] r74482 - in /llvm/trunk: include/llvm/CompilerDriver/Main.inc lib/CompilerDriver/Main.cpp
Mikhail Glushenkov
foldr at codedgers.com
Mon Jun 29 17:15:24 PDT 2009
Author: foldr
Date: Mon Jun 29 19:15:24 2009
New Revision: 74482
URL: http://llvm.org/viewvc/llvm-project?rev=74482&view=rev
Log:
Move the driver entry point out of Main.inc.
Added:
llvm/trunk/lib/CompilerDriver/Main.cpp
- copied, changed from r74473, llvm/trunk/include/llvm/CompilerDriver/Main.inc
Modified:
llvm/trunk/include/llvm/CompilerDriver/Main.inc
Modified: llvm/trunk/include/llvm/CompilerDriver/Main.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CompilerDriver/Main.inc?rev=74482&r1=74481&r2=74482&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CompilerDriver/Main.inc (original)
+++ llvm/trunk/include/llvm/CompilerDriver/Main.inc Mon Jun 29 19:15:24 2009
@@ -12,121 +12,22 @@
// supported please refer to the tools' manual page or run the tool
// with the --help option.
//
+// This file provides the default entry point for the driver executable.
+//
//===----------------------------------------------------------------------===//
#ifndef LLVM_INCLUDE_COMPILER_DRIVER_MAIN_INC
#define LLVM_INCLUDE_COMPILER_DRIVER_MAIN_INC
-#include "llvm/CompilerDriver/BuiltinOptions.h"
-#include "llvm/CompilerDriver/CompilationGraph.h"
-#include "llvm/CompilerDriver/Error.h"
#include "llvm/CompilerDriver/ForceLinkage.h"
-#include "llvm/CompilerDriver/Plugin.h"
-
-#include "llvm/System/Path.h"
-
-#include <iostream>
-#include <stdexcept>
-#include <string>
-
-namespace cl = llvm::cl;
-namespace sys = llvm::sys;
-using namespace llvmc;
-
-namespace {
-
- sys::Path getTempDir() {
- sys::Path tempDir;
-
- // GCC 4.5-style -save-temps handling.
- if (SaveTemps == SaveTempsEnum::Unset) {
- tempDir = sys::Path::GetTemporaryDirectory();
- }
- else if (SaveTemps == SaveTempsEnum::Obj && !OutputFilename.empty()) {
- tempDir = OutputFilename;
-
- if (!tempDir.exists()) {
- std::string ErrMsg;
- if (tempDir.createDirectoryOnDisk(true, &ErrMsg))
- throw std::runtime_error(ErrMsg);
- }
- }
- // else if (SaveTemps == Cwd) -> use current dir (leave tempDir empty)
-
- return tempDir;
- }
-
- /// BuildTargets - A small wrapper for CompilationGraph::Build.
- int BuildTargets(CompilationGraph& graph, const LanguageMap& langMap) {
- int ret;
- const sys::Path& tempDir = getTempDir();
- try {
- ret = graph.Build(tempDir, langMap);
- }
- catch(...) {
- if (SaveTemps == SaveTempsEnum::Unset)
- tempDir.eraseFromDisk(true);
- throw;
- }
-
- if (SaveTemps == SaveTempsEnum::Unset)
- tempDir.eraseFromDisk(true);
- return ret;
- }
+namespace llvmc {
+ int Main(int argc, char** argv);
}
int main(int argc, char** argv) {
- try {
- ForceLinkage();
-
- LanguageMap langMap;
- CompilationGraph graph;
-
- cl::ParseCommandLineOptions
- (argc, argv, "LLVM Compiler Driver (Work In Progress)", true);
-
- PluginLoader Plugins;
- Plugins.PopulateLanguageMap(langMap);
- Plugins.PopulateCompilationGraph(graph);
-
- if (CheckGraph) {
- int ret = graph.Check();
- if (!ret)
- std::cerr << "check-graph: no errors found.\n";
-
- return ret;
- }
-
- if (ViewGraph) {
- graph.viewGraph();
- if (!WriteGraph)
- return 0;
- }
-
- if (WriteGraph) {
- graph.writeGraph(OutputFilename.empty()
- ? std::string("compilation-graph.dot")
- : OutputFilename);
- return 0;
- }
-
- if (InputFilenames.empty()) {
- throw std::runtime_error("no input files");
- }
-
- return BuildTargets(graph, langMap);
- }
- catch(llvmc::error_code& ec) {
- return ec.code();
- }
- catch(const std::exception& ex) {
- std::cerr << argv[0] << ": " << ex.what() << '\n';
- }
- catch(...) {
- std::cerr << argv[0] << ": unknown error!\n";
- }
- return 1;
+ llvmc::ForceLinkage();
+ return llvmc::Main(argc, argv);
}
#endif // LLVM_INCLUDE_COMPILER_DRIVER_MAIN_INC
Copied: llvm/trunk/lib/CompilerDriver/Main.cpp (from r74473, llvm/trunk/include/llvm/CompilerDriver/Main.inc)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CompilerDriver/Main.cpp?p2=llvm/trunk/lib/CompilerDriver/Main.cpp&p1=llvm/trunk/include/llvm/CompilerDriver/Main.inc&r1=74473&r2=74482&rev=74482&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CompilerDriver/Main.inc (original)
+++ llvm/trunk/lib/CompilerDriver/Main.cpp Mon Jun 29 19:15:24 2009
@@ -1,4 +1,4 @@
-//===--- Main.inc - The LLVM Compiler Driver --------------------*- C++ -*-===//
+//===--- Main.cpp - The LLVM Compiler Driver --------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -7,20 +7,13 @@
//
//===----------------------------------------------------------------------===//
//
-// This tool provides a single point of access to the LLVM
-// compilation tools. It has many options. To discover the options
-// supported please refer to the tools' manual page or run the tool
-// with the --help option.
+// llvmc::Main function - driver entry point.
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_INCLUDE_COMPILER_DRIVER_MAIN_INC
-#define LLVM_INCLUDE_COMPILER_DRIVER_MAIN_INC
-
#include "llvm/CompilerDriver/BuiltinOptions.h"
#include "llvm/CompilerDriver/CompilationGraph.h"
#include "llvm/CompilerDriver/Error.h"
-#include "llvm/CompilerDriver/ForceLinkage.h"
#include "llvm/CompilerDriver/Plugin.h"
#include "llvm/System/Path.h"
@@ -76,10 +69,10 @@
}
}
-int main(int argc, char** argv) {
- try {
- ForceLinkage();
+namespace llvmc {
+int Main(int argc, char** argv) {
+ try {
LanguageMap langMap;
CompilationGraph graph;
@@ -129,4 +122,4 @@
return 1;
}
-#endif // LLVM_INCLUDE_COMPILER_DRIVER_MAIN_INC
+} // end namespace llvmc
More information about the llvm-commits
mailing list