mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
Move CompilerDriver.h here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15609 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8fd3bca957
commit
abf1ce3c4e
75
tools/llvmc/CompilerDriver.h
Normal file
75
tools/llvmc/CompilerDriver.h
Normal file
@ -0,0 +1,75 @@
|
||||
//===- CompilerDriver.h - Compiler Driver ---------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file declares the CompilerDriver class which implements the bulk of the
|
||||
// LLVM Compiler Driver program (llvmc).
|
||||
//
|
||||
//===------------------------------------------------------------------------===
|
||||
|
||||
namespace llvm {
|
||||
/// This class provides the high level interface to the LLVM Compiler Driver.
|
||||
/// The driver's purpose is to make it easier for compiler writers and users
|
||||
/// of LLVM to utilize the compiler toolkits and LLVM toolset by learning only
|
||||
/// the interface of one program (llvmc).
|
||||
///
|
||||
/// @see llvmc.cpp
|
||||
/// @brief The interface to the LLVM Compiler Driver.
|
||||
class CompilerDriver {
|
||||
/// @name Types
|
||||
/// @{
|
||||
public:
|
||||
typedef unsigned OptimizationLevel;
|
||||
enum Phases {
|
||||
PREPROCESSING, ///< Source language combining, filtering, substitution
|
||||
TRANSLATION, ///< Translate source -> LLVM bytecode/assembly
|
||||
OPTIMIZATION, ///< Optimize translation result
|
||||
LINKING, ///< Link bytecode and native code
|
||||
ASSEMBLY, ///< Convert program to executable
|
||||
};
|
||||
|
||||
enum OptimizationLevels {
|
||||
OPT_NONE,
|
||||
OPT_FAST_COMPILE,
|
||||
OPT_SIMPLE,
|
||||
OPT_AGGRESSIVE,
|
||||
OPT_LINK_TIME,
|
||||
OPT_AGGRESSIVE_LINK_TIME
|
||||
};
|
||||
|
||||
/// @}
|
||||
/// @name Constructors
|
||||
/// @{
|
||||
public:
|
||||
CompilerDriver();
|
||||
|
||||
/// @}
|
||||
/// @name Accessors
|
||||
/// @{
|
||||
public:
|
||||
void execute(); ///< Execute the actions requested
|
||||
|
||||
/// @}
|
||||
/// @name Mutators
|
||||
/// @{
|
||||
public:
|
||||
/// @brief Set the optimization level for the compilation
|
||||
void setOptimization( OptimizationLevel level );
|
||||
void setFinalPhase( Phases phase );
|
||||
|
||||
/// @}
|
||||
/// @name Data
|
||||
/// @{
|
||||
public:
|
||||
Phases finalPhase;
|
||||
OptimizationLevel optLevel;
|
||||
|
||||
/// @}
|
||||
|
||||
};
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
//
|
||||
//===------------------------------------------------------------------------===
|
||||
|
||||
#include "llvm/Driver/CompilerDriver.h"
|
||||
#include "CompilerDriver.h"
|
||||
#include "llvm/System/Signals.h"
|
||||
#include "Support/CommandLine.h"
|
||||
#include <iostream>
|
||||
|
Loading…
Reference in New Issue
Block a user