aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Tools.h
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@FreeBSD.org>2010-05-27 15:17:06 +0000
committerRoman Divacky <rdivacky@FreeBSD.org>2010-05-27 15:17:06 +0000
commitd7279c4c177bca357ef96ff1379fd9bc420bfe83 (patch)
tree3558f327a6f9ab59c5d7a06528d84e1560445247 /lib/Driver/Tools.h
parentbe17651f5cd2e94922c1b732bc8589e180698193 (diff)
downloadsrc-d7279c4c177bca357ef96ff1379fd9bc420bfe83.tar.gz
src-d7279c4c177bca357ef96ff1379fd9bc420bfe83.zip
Notes
Diffstat (limited to 'lib/Driver/Tools.h')
-rw-r--r--lib/Driver/Tools.h123
1 files changed, 79 insertions, 44 deletions
diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h
index 091fec380622..d5e98dd24c48 100644
--- a/lib/Driver/Tools.h
+++ b/lib/Driver/Tools.h
@@ -26,7 +26,8 @@ namespace toolchains {
namespace tools {
- class VISIBILITY_HIDDEN Clang : public Tool {
+ /// \brief Clang compiler tool.
+ class LLVM_LIBRARY_VISIBILITY Clang : public Tool {
void AddPreprocessingOptions(const Driver &D,
const ArgList &Args,
ArgStringList &CmdArgs,
@@ -38,7 +39,7 @@ namespace tools {
void AddX86TargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const;
public:
- Clang(const ToolChain &TC) : Tool("clang", TC) {}
+ Clang(const ToolChain &TC) : Tool("clang", "clang frontend", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -54,11 +55,32 @@ namespace tools {
const char *LinkingOutput) const;
};
+ /// \brief Clang integrated assembler tool.
+ class LLVM_LIBRARY_VISIBILITY ClangAs : public Tool {
+ public:
+ ClangAs(const ToolChain &TC) : Tool("clang::as",
+ "clang integrated assembler", TC) {}
+
+ virtual bool acceptsPipedInput() const { return true; }
+ virtual bool canPipeOutput() const { return true; }
+ virtual bool hasGoodDiagnostics() const { return true; }
+ virtual bool hasIntegratedAssembler() const { return false; }
+ virtual bool hasIntegratedCPP() const { return false; }
+
+ virtual void ConstructJob(Compilation &C, const JobAction &JA,
+ Job &Dest,
+ const InputInfo &Output,
+ const InputInfoList &Inputs,
+ const ArgList &TCArgs,
+ const char *LinkingOutput) const;
+ };
+
/// gcc - Generic GCC tool implementations.
namespace gcc {
- class VISIBILITY_HIDDEN Common : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Common : public Tool {
public:
- Common(const char *Name, const ToolChain &TC) : Tool(Name, TC) {}
+ Common(const char *Name, const char *ShortName,
+ const ToolChain &TC) : Tool(Name, ShortName, TC) {}
virtual void ConstructJob(Compilation &C, const JobAction &JA,
Job &Dest,
@@ -74,9 +96,10 @@ namespace gcc {
};
- class VISIBILITY_HIDDEN Preprocess : public Common {
+ class LLVM_LIBRARY_VISIBILITY Preprocess : public Common {
public:
- Preprocess(const ToolChain &TC) : Common("gcc::Preprocess", TC) {}
+ Preprocess(const ToolChain &TC) : Common("gcc::Preprocess",
+ "gcc preprocessor", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -87,9 +110,10 @@ namespace gcc {
ArgStringList &CmdArgs) const;
};
- class VISIBILITY_HIDDEN Precompile : public Common {
+ class LLVM_LIBRARY_VISIBILITY Precompile : public Common {
public:
- Precompile(const ToolChain &TC) : Common("gcc::Precompile", TC) {}
+ Precompile(const ToolChain &TC) : Common("gcc::Precompile",
+ "gcc precompile", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return false; }
@@ -100,9 +124,10 @@ namespace gcc {
ArgStringList &CmdArgs) const;
};
- class VISIBILITY_HIDDEN Compile : public Common {
+ class LLVM_LIBRARY_VISIBILITY Compile : public Common {
public:
- Compile(const ToolChain &TC) : Common("gcc::Compile", TC) {}
+ Compile(const ToolChain &TC) : Common("gcc::Compile",
+ "gcc frontend", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -113,9 +138,10 @@ namespace gcc {
ArgStringList &CmdArgs) const;
};
- class VISIBILITY_HIDDEN Assemble : public Common {
+ class LLVM_LIBRARY_VISIBILITY Assemble : public Common {
public:
- Assemble(const ToolChain &TC) : Common("gcc::Assemble", TC) {}
+ Assemble(const ToolChain &TC) : Common("gcc::Assemble",
+ "assembler (via gcc)", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return false; }
@@ -125,9 +151,10 @@ namespace gcc {
ArgStringList &CmdArgs) const;
};
- class VISIBILITY_HIDDEN Link : public Common {
+ class LLVM_LIBRARY_VISIBILITY Link : public Common {
public:
- Link(const ToolChain &TC) : Common("gcc::Link", TC) {}
+ Link(const ToolChain &TC) : Common("gcc::Link",
+ "linker (via gcc)", TC) {}
virtual bool acceptsPipedInput() const { return false; }
virtual bool canPipeOutput() const { return false; }
@@ -139,7 +166,7 @@ namespace gcc {
} // end namespace gcc
namespace darwin {
- class VISIBILITY_HIDDEN DarwinTool : public Tool {
+ class LLVM_LIBRARY_VISIBILITY DarwinTool : public Tool {
protected:
void AddDarwinArch(const ArgList &Args, ArgStringList &CmdArgs) const;
@@ -148,10 +175,11 @@ namespace darwin {
}
public:
- DarwinTool(const char *Name, const ToolChain &TC) : Tool(Name, TC) {}
+ DarwinTool(const char *Name, const char *ShortName,
+ const ToolChain &TC) : Tool(Name, ShortName, TC) {}
};
- class VISIBILITY_HIDDEN CC1 : public DarwinTool {
+ class LLVM_LIBRARY_VISIBILITY CC1 : public DarwinTool {
public:
static const char *getBaseInputName(const ArgList &Args,
const InputInfoList &Input);
@@ -176,7 +204,8 @@ namespace darwin {
void AddCPPArgs(const ArgList &Args, ArgStringList &CmdArgs) const;
public:
- CC1(const char *Name, const ToolChain &TC) : DarwinTool(Name, TC) {}
+ CC1(const char *Name, const char *ShortName,
+ const ToolChain &TC) : DarwinTool(Name, ShortName, TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -184,9 +213,10 @@ namespace darwin {
virtual bool hasIntegratedCPP() const { return true; }
};
- class VISIBILITY_HIDDEN Preprocess : public CC1 {
+ class LLVM_LIBRARY_VISIBILITY Preprocess : public CC1 {
public:
- Preprocess(const ToolChain &TC) : CC1("darwin::Preprocess", TC) {}
+ Preprocess(const ToolChain &TC) : CC1("darwin::Preprocess",
+ "gcc preprocessor", TC) {}
virtual void ConstructJob(Compilation &C, const JobAction &JA,
Job &Dest,
@@ -196,9 +226,9 @@ namespace darwin {
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Compile : public CC1 {
+ class LLVM_LIBRARY_VISIBILITY Compile : public CC1 {
public:
- Compile(const ToolChain &TC) : CC1("darwin::Compile", TC) {}
+ Compile(const ToolChain &TC) : CC1("darwin::Compile", "gcc frontend", TC) {}
virtual void ConstructJob(Compilation &C, const JobAction &JA,
Job &Dest,
@@ -208,9 +238,10 @@ namespace darwin {
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Assemble : public DarwinTool {
+ class LLVM_LIBRARY_VISIBILITY Assemble : public DarwinTool {
public:
- Assemble(const ToolChain &TC) : DarwinTool("darwin::Assemble", TC) {}
+ Assemble(const ToolChain &TC) : DarwinTool("darwin::Assemble",
+ "assembler", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return false; }
@@ -224,11 +255,11 @@ namespace darwin {
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Link : public DarwinTool {
+ class LLVM_LIBRARY_VISIBILITY Link : public DarwinTool {
void AddLinkArgs(const ArgList &Args, ArgStringList &CmdArgs) const;
public:
- Link(const ToolChain &TC) : DarwinTool("darwin::Link", TC) {}
+ Link(const ToolChain &TC) : DarwinTool("darwin::Link", "linker", TC) {}
virtual bool acceptsPipedInput() const { return false; }
virtual bool canPipeOutput() const { return false; }
@@ -242,9 +273,9 @@ namespace darwin {
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Lipo : public DarwinTool {
+ class LLVM_LIBRARY_VISIBILITY Lipo : public DarwinTool {
public:
- Lipo(const ToolChain &TC) : DarwinTool("darwin::Lipo", TC) {}
+ Lipo(const ToolChain &TC) : DarwinTool("darwin::Lipo", "lipo", TC) {}
virtual bool acceptsPipedInput() const { return false; }
virtual bool canPipeOutput() const { return false; }
@@ -261,9 +292,10 @@ namespace darwin {
/// openbsd -- Directly call GNU Binutils assembler and linker
namespace openbsd {
- class VISIBILITY_HIDDEN Assemble : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool {
public:
- Assemble(const ToolChain &TC) : Tool("openbsd::Assemble", TC) {}
+ Assemble(const ToolChain &TC) : Tool("openbsd::Assemble", "assembler",
+ TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -276,9 +308,9 @@ namespace openbsd {
const ArgList &TCArgs,
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Link : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Link : public Tool {
public:
- Link(const ToolChain &TC) : Tool("openbsd::Link", TC) {}
+ Link(const ToolChain &TC) : Tool("openbsd::Link", "linker", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -295,9 +327,10 @@ namespace openbsd {
/// freebsd -- Directly call GNU Binutils assembler and linker
namespace freebsd {
- class VISIBILITY_HIDDEN Assemble : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool {
public:
- Assemble(const ToolChain &TC) : Tool("freebsd::Assemble", TC) {}
+ Assemble(const ToolChain &TC) : Tool("freebsd::Assemble", "assembler",
+ TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -310,9 +343,9 @@ namespace freebsd {
const ArgList &TCArgs,
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Link : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Link : public Tool {
public:
- Link(const ToolChain &TC) : Tool("freebsd::Link", TC) {}
+ Link(const ToolChain &TC) : Tool("freebsd::Link", "linker", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -329,9 +362,10 @@ namespace freebsd {
/// auroraux -- Directly call GNU Binutils assembler and linker
namespace auroraux {
- class VISIBILITY_HIDDEN Assemble : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool {
public:
- Assemble(const ToolChain &TC) : Tool("auroraux::Assemble", TC) {}
+ Assemble(const ToolChain &TC) : Tool("auroraux::Assemble", "assembler",
+ TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -344,9 +378,9 @@ namespace auroraux {
const ArgList &TCArgs,
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Link : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Link : public Tool {
public:
- Link(const ToolChain &TC) : Tool("auroraux::Link", TC) {}
+ Link(const ToolChain &TC) : Tool("auroraux::Link", "linker", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -363,9 +397,10 @@ namespace auroraux {
/// dragonfly -- Directly call GNU Binutils assembler and linker
namespace dragonfly {
- class VISIBILITY_HIDDEN Assemble : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool {
public:
- Assemble(const ToolChain &TC) : Tool("dragonfly::Assemble", TC) {}
+ Assemble(const ToolChain &TC) : Tool("dragonfly::Assemble", "assembler",
+ TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
@@ -378,9 +413,9 @@ namespace dragonfly {
const ArgList &TCArgs,
const char *LinkingOutput) const;
};
- class VISIBILITY_HIDDEN Link : public Tool {
+ class LLVM_LIBRARY_VISIBILITY Link : public Tool {
public:
- Link(const ToolChain &TC) : Tool("dragonfly::Link", TC) {}
+ Link(const ToolChain &TC) : Tool("dragonfly::Link", "linker", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }