Skip to content
  1. Jul 27, 2012
  2. Jun 21, 2012
  3. Jun 06, 2012
  4. Jun 04, 2012
  5. May 02, 2012
  6. May 01, 2012
  7. 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
  8. 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
  9. Nov 05, 2011
  10. Feb 10, 2011
  11. Sep 14, 2010
  12. Sep 10, 2010
  13. Sep 09, 2010
  14. Jun 17, 2010
  15. May 20, 2010
  16. Mar 22, 2010
  17. Nov 19, 2009
  18. Jun 23, 2009
  19. Jun 18, 2009
  20. Mar 24, 2009
  21. Mar 13, 2009
  22. Mar 02, 2009
  23. Nov 30, 2008
  24. Nov 04, 2008
  25. Oct 26, 2008
Loading