[cfe-commits] r90287 - in /cfe/trunk: include/clang/Driver/Job.h lib/Driver/Job.cpp lib/Driver/Tools.cpp
Daniel Dunbar
daniel at zuster.org
Tue Dec 1 19:23:25 PST 2009
Author: ddunbar
Date: Tue Dec 1 21:23:25 2009
New Revision: 90287
URL: http://llvm.org/viewvc/llvm-project?rev=90287&view=rev
Log:
Driver: Add Command::Creator member variable, which tracks the tool that was
used to create a particular command.
Modified:
cfe/trunk/include/clang/Driver/Job.h
cfe/trunk/lib/Driver/Job.cpp
cfe/trunk/lib/Driver/Tools.cpp
Modified: cfe/trunk/include/clang/Driver/Job.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Job.h?rev=90287&r1=90286&r2=90287&view=diff
==============================================================================
--- cfe/trunk/include/clang/Driver/Job.h (original)
+++ cfe/trunk/include/clang/Driver/Job.h Tue Dec 1 21:23:25 2009
@@ -22,7 +22,8 @@
namespace clang {
namespace driver {
- class Command;
+class Command;
+class Tool;
class Job {
public:
@@ -55,6 +56,9 @@
/// Source - The action which caused the creation of this job.
const Action &Source;
+ /// Tool - The tool which caused the creation of this job.
+ const Tool &Creator;
+
/// The executable to run.
const char *Executable;
@@ -63,12 +67,15 @@
ArgStringList Arguments;
public:
- Command(const Action &_Source, const char *_Executable,
+ Command(const Action &_Source, const Tool &_Creator, const char *_Executable,
const ArgStringList &_Arguments);
/// getSource - Return the Action which caused the creation of this job.
const Action &getSource() const { return Source; }
+ /// getCreator - Return the Tool which caused the creation of this job.
+ const Tool &getCreator() const { return Creator; }
+
const char *getExecutable() const { return Executable; }
const ArgStringList &getArguments() const { return Arguments; }
Modified: cfe/trunk/lib/Driver/Job.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Job.cpp?rev=90287&r1=90286&r2=90287&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Job.cpp (original)
+++ cfe/trunk/lib/Driver/Job.cpp Tue Dec 1 21:23:25 2009
@@ -14,10 +14,11 @@
Job::~Job() {}
-Command::Command(const Action &_Source, const char *_Executable,
- const ArgStringList &_Arguments)
- : Job(CommandClass), Source(_Source), Executable(_Executable),
- Arguments(_Arguments) {
+Command::Command(const Action &_Source, const Tool &_Creator,
+ const char *_Executable, const ArgStringList &_Arguments)
+ : Job(CommandClass), Source(_Source), Creator(_Creator),
+ Executable(_Executable), Arguments(_Arguments)
+{
}
PipedJob::PipedJob() : Job(PipedJobClass) {}
Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=90287&r1=90286&r2=90287&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Tue Dec 1 21:23:25 2009
@@ -1078,7 +1078,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "clang-cc"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
// Explicitly warn that these options are unsupported, even though
// we are allowing compilation to continue.
@@ -1200,7 +1200,7 @@
getToolChain().getHost().getDriver().CCCGenericGCCName.c_str();
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, GCCName));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void gcc::Preprocess::RenderExtraToolArgs(ArgStringList &CmdArgs) const {
@@ -1589,7 +1589,7 @@
const char *CC1Name = getCC1Name(Inputs[0].getType());
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, CC1Name));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void darwin::Compile::ConstructJob(Compilation &C, const JobAction &JA,
@@ -1683,7 +1683,7 @@
const char *CC1Name = getCC1Name(Inputs[0].getType());
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, CC1Name));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void darwin::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
@@ -1738,7 +1738,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "as"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
/// Helper routine for seeing if we should use dsymutil; this is a
@@ -2152,7 +2152,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "ld"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
// Find the first non-empty base input (we want to ignore linker
// inputs).
@@ -2182,7 +2182,7 @@
Args.MakeArgString(getToolChain().GetProgramPath(C, "dsymutil"));
ArgStringList CmdArgs;
CmdArgs.push_back(Output.getFilename());
- C.getJobs().addCommand(new Command(JA, Exec, CmdArgs));
+ C.getJobs().addCommand(new Command(JA, *this, Exec, CmdArgs));
}
}
}
@@ -2208,7 +2208,7 @@
}
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "lipo"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void auroraux::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
@@ -2238,7 +2238,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "gas"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void auroraux::Link::ConstructJob(Compilation &C, const JobAction &JA,
@@ -2339,7 +2339,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "ld"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void openbsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
@@ -2369,7 +2369,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "as"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void openbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
@@ -2469,7 +2469,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "ld"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void freebsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
@@ -2504,7 +2504,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "as"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
@@ -2617,7 +2617,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "ld"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
/// DragonFly Tools
@@ -2656,7 +2656,7 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "as"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
void dragonfly::Link::ConstructJob(Compilation &C, const JobAction &JA,
@@ -2780,5 +2780,5 @@
const char *Exec =
Args.MakeArgString(getToolChain().GetProgramPath(C, "ld"));
- Dest.addCommand(new Command(JA, Exec, CmdArgs));
+ Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
}
More information about the cfe-commits
mailing list