Skip to content
Snippets Groups Projects
  1. Dec 22, 2017
  2. Sep 15, 2017
  3. Aug 31, 2017
    • Boris Kolpackov's avatar
      [modules] Add ability to specify module name to module file mapping (reapply) · 90051f76
      Boris Kolpackov authored
      Extend the -fmodule-file option to support the [<name>=]<file> value format.
      If the name is omitted, then the old semantics is preserved (the module file
      is loaded whether needed or not). If the name is specified, then the mapping
      is treated as just another prebuilt module search mechanism, similar to
      -fprebuilt-module-path, and the module file is only loaded if actually used
      (e.g., via import). With one exception: this mapping also overrides module
      file references embedded in other modules (which can be useful if module files
      are moved/renamed as often happens during remote compilation).
      
      This override semantics requires some extra work: we now store the module name
      in addition to the file name in the serialized AST representation.
      
      Reviewed By: rsmith
      
      Differential Revision: https://reviews.llvm.org/D35020
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@312220 91177308-0d34-0410-b5e6-96231b3b80d8
      90051f76
  4. Aug 30, 2017
  5. Aug 03, 2017
  6. Jun 02, 2017
    • Richard Smith's avatar
      Support lazy stat'ing of files referenced by module maps. · 146ecad7
      Richard Smith authored
      This patch adds support for a `header` declaration in a module map to specify
      certain `stat` information (currently, size and mtime) about that header file.
      This has two purposes:
      
      - It removes the need to eagerly `stat` every file referenced by a module map.
        Instead, we track a list of unresolved header files with each size / mtime
        (actually, for simplicity, we track submodules with such headers), and when
        attempting to look up a header file based on a `FileEntry`, we check if there
        are any unresolved header directives with that `FileEntry`'s size / mtime and
        perform deferred `stat`s if so.
      
      - It permits a preprocessed module to be compiled without the original files
        being present on disk. The only reason we used to need those files was to get
        the `stat` information in order to do header -> module lookups when using the
        module. If we're provided with the `stat` information in the preprocessed
        module, we can avoid requiring the files to exist.
      
      Unlike most `header` directives, if a `header` directive with `stat`
      information has no corresponding on-disk file the enclosing module is *not*
      marked unavailable (so that behavior is consistent regardless of whether we've
      resolved a header directive, and so that preprocessed modules don't get marked
      unavailable). We could actually do this for all `header` directives: the only
      reason we mark the module unavailable if headers are missing is to give a
      diagnostic slightly earlier (rather than waiting until we actually try to build
      the module / load and validate its .pcm file).
      
      Differential Revision: https://reviews.llvm.org/D33703
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304515 91177308-0d34-0410-b5e6-96231b3b80d8
      146ecad7
  7. May 31, 2017
  8. May 28, 2017
  9. May 27, 2017
  10. Mar 17, 2017
  11. Oct 31, 2016
  12. Oct 21, 2016
  13. Sep 04, 2016
  14. Aug 30, 2016
  15. Aug 18, 2016
  16. Sep 17, 2015
  17. Jun 19, 2015
  18. Jun 16, 2015
  19. Mar 26, 2015
  20. Feb 20, 2015
  21. Nov 25, 2014
  22. Oct 24, 2014
  23. Oct 23, 2014
  24. Oct 20, 2014
    • Richard Smith's avatar
      [modules] Add support for #include_next. · ccaf6244
      Richard Smith authored
      #include_next interacts poorly with modules: it depends on where in the list of
      include paths the current file was found. Files covered by module maps are not
      found in include search paths when building the module (and are not found in
      include search paths when @importing the module either), so this isn't really
      meaningful. Instead, we fake up the result that #include_next *should* have
      given: find the first path that would have resulted in the given file being
      picked, and search from there onwards.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220177 91177308-0d34-0410-b5e6-96231b3b80d8
      ccaf6244
  25. Oct 01, 2014
    • Richard Smith's avatar
      Enable both C and C++ modules with -fmodules, by switching -fcxx-modules to · ce4ac7ba
      Richard Smith authored
      being on by default. -fno-cxx-modules can still be used to enable C modules but
      not C++ modules, but C++ modules is not significantly less stable than C
      modules any more.
      
      Also remove some of the scare words from the modules documentation. We're
      certainly not going to remove modules support (though we might change the
      interface), and it works well enough to bootstrap and build lots of
      non-trivial code.
      
      Note that this does not represent a commitment to the current interface nor
      implementation, and we still intend to follow whatever direction the C and C++
      committees take regarding modules support.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218717 91177308-0d34-0410-b5e6-96231b3b80d8
      ce4ac7ba
  26. Sep 29, 2014
  27. Jul 24, 2014
  28. Apr 23, 2014
  29. Apr 18, 2014
  30. Apr 17, 2014
  31. Mar 28, 2014
  32. Mar 19, 2014
  33. Mar 02, 2014
Loading