[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