forked from OSchip/llvm-project
CompileContext and options class for the llc compiler.
llvm-svn: 227
This commit is contained in:
parent
5c66a797a2
commit
ad5ac0fab4
|
@ -0,0 +1,69 @@
|
|||
// $Id$ -*-c++-*-
|
||||
//***************************************************************************
|
||||
// class CompileContext
|
||||
//
|
||||
// Purpose:
|
||||
// Holds the common option and target information for a compilation run.
|
||||
//
|
||||
// History:
|
||||
// 07/15/01 - vadve - Created
|
||||
//
|
||||
//**************************************************************************/
|
||||
|
||||
#ifndef LLVM_LLC_COMPILECONTEXT_H
|
||||
#define LLVM_LLC_COMPILECONTEXT_H
|
||||
|
||||
//************************** System Include Files **************************/
|
||||
|
||||
#include <string>
|
||||
|
||||
//*************************** User Include Files ***************************/
|
||||
|
||||
#include "llvm/Codegen/Sparc.h"
|
||||
#include "llvm/LLC/LLCOptions.h"
|
||||
|
||||
//************************** Forward Declarations **************************/
|
||||
|
||||
class ProgramOptions;
|
||||
class TargetMachine;
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// class CompileContext
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
class CompileContext: public Unique
|
||||
{
|
||||
private:
|
||||
LLCOptions* options;
|
||||
TargetMachine* targetMachine;
|
||||
|
||||
public:
|
||||
/*ctor*/ CompileContext (int argc, const char **argv, const char** envp);
|
||||
/*dtor*/ virtual ~CompileContext ();
|
||||
|
||||
const LLCOptions& getOptions () const { return *options; }
|
||||
|
||||
const TargetMachine& getTarget () const { return *targetMachine; }
|
||||
TargetMachine& getTarget () { return *targetMachine; }
|
||||
};
|
||||
|
||||
|
||||
inline
|
||||
CompileContext::CompileContext(int argc, const char **argv, const char** envp)
|
||||
{
|
||||
options = new LLCOptions(argc, argv, envp);
|
||||
targetMachine = new UltraSparc;
|
||||
}
|
||||
|
||||
|
||||
inline
|
||||
CompileContext::~CompileContext()
|
||||
{
|
||||
delete options;
|
||||
delete targetMachine;
|
||||
}
|
||||
|
||||
//**************************************************************************/
|
||||
|
||||
#endif
|
|
@ -0,0 +1,84 @@
|
|||
// $Id$ -*-c++-*-
|
||||
//**************************************************************************/
|
||||
// File:
|
||||
// LLCOptions.h
|
||||
//
|
||||
// Purpose:
|
||||
// Options for the llc compiler.
|
||||
//
|
||||
// History:
|
||||
// 7/15/01 - Vikram Adve - Created
|
||||
//
|
||||
//**************************************************************************/
|
||||
|
||||
#ifndef LLVM_LLC_LLCOPTIONS_H
|
||||
#define LLVM_LLC_LLCOPTIONS_H
|
||||
|
||||
//************************** System Include Files **************************/
|
||||
|
||||
#include <iostream.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
//*************************** User Include Files ***************************/
|
||||
|
||||
#include "llvm/Support/ProgramOptions.h"
|
||||
#include "llvm/Support/ProgramOption.h"
|
||||
|
||||
//************************ Option Name Definitions *************************/
|
||||
|
||||
const char* const HELP_OPT = "help";
|
||||
const char* const DEBUG_OPT = "d";
|
||||
const char* const QUIET_OPT = "q";
|
||||
const char* const DEBUG_INSTR_SELECT_OPT= "debug_select";
|
||||
const char* const OUTFILENAME_OPT = "o";
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// class LLCOptions
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
class LLCOptions : public ProgramOptions {
|
||||
public:
|
||||
/*ctor*/ LLCOptions (int _argc,
|
||||
const char* _argv[],
|
||||
const char* _envp[]);
|
||||
/*dtor*/ virtual ~LLCOptions ();
|
||||
|
||||
const string& getInputFileName() const { return inputFileName; }
|
||||
|
||||
const string& getOutputFileName() const { return outputFileName; }
|
||||
|
||||
protected:
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Initialize for all our compiler options (called by constructors).
|
||||
//--------------------------------------------------------------------
|
||||
void InitializeOptions();
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Make sure the parse went ok.
|
||||
//--------------------------------------------------------------------
|
||||
void CheckParse();
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Parse arguments after all options are consumed.
|
||||
// This is called after a successful ParseArgs.
|
||||
//--------------------------------------------------------------------
|
||||
virtual void ParseExtraArgs();
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Print message describing which arguments and options are
|
||||
// required, optional, mutually exclusive, ...
|
||||
// called in ProgramOptions::Usage() method
|
||||
//--------------------------------------------------------------------
|
||||
virtual void PrintUsage(ostream& stream) const;
|
||||
|
||||
private:
|
||||
string inputFileName;
|
||||
string outputFileName;
|
||||
};
|
||||
|
||||
//**************************************************************************/
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue