Skip to content
  1. Aug 19, 2013
  2. Aug 08, 2013
  3. Jun 14, 2013
    • Reid Kleckner's avatar
      [Driver] Refactor clang driver to use LLVM's Option library · 898229ab
      Reid Kleckner authored
      The big changes are:
      - Deleting Driver/(Arg|Opt)*
      - Rewriting includes to llvm/Option/ and re-sorting
      - 'using namespace llvm::opt' in clang::driver
      - Fixing the autoconf build by adding option everywhere
      
      As discussed in the review, this change includes using directives in
      header files.  I'll make follow up changes to remove those in favor of
      name specifiers.
      
      Reviewers: espindola
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D975
      
      llvm-svn: 183989
      898229ab
  4. Jul 27, 2012
  5. Jun 21, 2012
  6. Jun 06, 2012
  7. Jun 04, 2012
  8. May 02, 2012
  9. May 01, 2012
  10. Jan 25, 2012
    • Chandler Carruth's avatar
      Delete the driver's HostInfo class. This abstraction just never really · 2ad5de1f
      Chandler Carruth authored
      did anything. The two big pieces of functionality it tried to provide
      was to cache the ToolChain objects for each target, and to figure out
      the exact target based on the flag set coming in to an invocation.
      However, it had a lot of flaws even with those goals:
       - Neither of these have anything to do with the host, or its info.
       - The HostInfo class was setup as a full blown class *hierarchy* with
         a separate implementation for each "host" OS. This required
         dispatching just to create the objects in the first place.
       - The hierarchy claimed to represent the host, when in fact it was
         based on the target OS.
       - Each leaf in the hierarchy was responsible for implementing the flag
         processing and caching, resulting in a *lot* of copy-paste code and
         quite a few bugs.
       - The caching was consistently done based on architecture alone, even
         though *any* aspect of the targeted triple might change the behavior
         of the configured toolchain.
       - Flag processing was already being done in the Driver proper,
         separating the flag handling even more than it already is.
      
      Instead of this, we can simply have the dispatch logic in the Driver
      which previously created a HostInfo object create the ToolChain objects.
      Adding caching in the Driver layer is a tiny amount of code. Finally,
      pulling the flag processing into the Driver puts it where it belongs and
      consolidates it in one location.
      
      The result is that two functions, and maybe 100 lines of new code
      replace over 10 classes and 800 lines of code. Woot.
      
      This also paves the way to introduce more detailed ToolChain objects for
      various OSes without threading through a new HostInfo type as well, and
      the accompanying boiler plate. That, of course, was the yak I started to
      shave that began this entire refactoring escapade. Wheee!
      
      llvm-svn: 148950
      2ad5de1f
  11. Dec 18, 2011
    • Chandler Carruth's avatar
      Split the Windows toolchain definition into its own file. This is · 1fc603e5
      Chandler Carruth authored
      especially nice as the Windows toolchain needs the windows header files,
      and has lots of platform specific hooks in it.
      
      To facilitate the split, hoist a bunch of file-level static helpers into
      class-level static helpers. Spiff up their doxygen comments while there
      as they're now more likely to be looked up via docs.
      
      Hopefully, this will be followed by further breaking apart of the
      toolchain definitions. Most of the large and complex ones should likely
      live on their own. I'm looking at you Darwin. ;]
      
      llvm-svn: 146840
      1fc603e5
  12. Nov 05, 2011
  13. Feb 10, 2011
  14. Sep 14, 2010
  15. Sep 10, 2010
  16. Sep 09, 2010
  17. Jun 17, 2010
  18. May 20, 2010
  19. Mar 22, 2010
  20. Nov 19, 2009
  21. Jun 23, 2009
  22. Jun 18, 2009
  23. Mar 24, 2009
  24. Mar 13, 2009
  25. Mar 02, 2009
  26. Nov 30, 2008
  27. Nov 04, 2008
  28. Oct 26, 2008
Loading