From 9ad9f09ef2d6ddc8be51d70d4af6db8fb6eb9565 Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Sat, 21 Jul 2001 12:39:30 +0000 Subject: [PATCH] CompileContext and options class for the llc compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/LLC/CompileContext.h | 69 +++++++++++++++++++++++++ include/llvm/LLC/LLCOptions.h | 84 +++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 include/llvm/LLC/CompileContext.h create mode 100644 include/llvm/LLC/LLCOptions.h diff --git a/include/llvm/LLC/CompileContext.h b/include/llvm/LLC/CompileContext.h new file mode 100644 index 00000000000..88e35d6ff37 --- /dev/null +++ b/include/llvm/LLC/CompileContext.h @@ -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 + +//*************************** 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 diff --git a/include/llvm/LLC/LLCOptions.h b/include/llvm/LLC/LLCOptions.h new file mode 100644 index 00000000000..56e963a5c74 --- /dev/null +++ b/include/llvm/LLC/LLCOptions.h @@ -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 +#include + + +//*************************** 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 -- 2.34.1