Skip to content
Snippets Groups Projects
  1. Jun 12, 2015
  2. May 30, 2015
  3. May 29, 2015
  4. May 28, 2015
    • Chandler Carruth's avatar
      [omp] Re-work Clang's handling of -fopenmp and undo r237769. · 81e18739
      Chandler Carruth authored
      This isn't an actual revert of r237769, it just restores the behavior of
      the Clang driver prior to it while completely re-implementing how that
      behavior works.
      
      This also re-does the work of making the default OpenMP runtime
      selectable at CMake (or configure) time to work in the way all of our
      other such hooks do (config.h, configure and cmake hooks, etc.).
      
      I've re-implemented how we manage the '-fopenmp' flagset in an important
      way. Now, the "default" hook just makes '-fopenmp' equivalent to
      '-fopenmp=<default>' rather than a separate special beast. Also, there
      is an '-fno-openmp' flag which does the obvious thing. Also, the code is
      shared between all the places to select a known OpenMP runtime and act
      on it.
      
      Finally, and most significantly, I've taught the driver to inspect the
      selected runtime when choosing whether to propagate the '-fopenmp' flag
      to the frontend in the CC1 commandline. Without this, it isn't possible
      to use Clang with libgomp, even if you were happy with the serial,
      boring way in which it worked previously (ignoring all #pragmas but
      linking in the library to satisfy direct calls into the runtime).
      
      While I'm here, I've gone ahead and sketched out a path for the future
      name of LLVM's OpenMP runtime (libomp) and the legacy support for its
      current name (libiomp5) in what seems a more reasonable way.
      
      To re-enable LLVM's OpenMP runtime (which I think should wait until the
      normal getting started instructions are a reasonable way for falks to
      check out, build, and install Clang with the runtime) all that needs to
      change is the default string in the CMakeLists.txt and configure.ac
      file. No code changes necessary.
      
      I also added a test for the driver's behavior around OpenMP since it was
      *completely missing* previously. Makes it unsurprising that we got it
      wrong.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@238389 91177308-0d34-0410-b5e6-96231b3b80d8
      81e18739
  5. May 21, 2015
  6. Mar 23, 2015
  7. Jan 05, 2015
  8. Dec 29, 2014
    • Chandler Carruth's avatar
      [multilib] Teach Clang's code about multilib by threading · 7aaf47b3
      Chandler Carruth authored
      a CLANG_LIBDIR_SUFFIX down from the build system and using that as part
      of the default resource dir computation.
      
      Without this, essentially nothing that uses the clang driver works when
      building clang with a libdir suffix. This is probably the single biggest
      missing piece of support for multilib as without this people could hack
      clang to end up installed in the correct location, but it would then
      fail to find its own basic resources. I know of at least one distro that
      has some variation on this patch to hack around this; hopefully they'll
      be able to use the libdir suffix functionality directly as the rest of
      these bits land.
      
      This required fixing a copy of the code to compute Clang's resource
      directory that is buried inside of the frontend (!!!). It had bitrotted
      significantly relative to the driver code. I've made it essentially
      a clone of the driver code in order to keep tests (which use cc1
      heavily) passing. This copy should probably just be removed and the
      frontend taught to always rely on an explicit resource directory from
      the driver, but that is a much more invasive change for another day.
      
      I've also updated one test which actually encoded the resource directory
      in its checked output to tolerate multilib suffixes.
      
      Note that this relies on a prior LLVM commit to add a stub to the
      autoconf build system for this variable.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224924 91177308-0d34-0410-b5e6-96231b3b80d8
      7aaf47b3
    • Chandler Carruth's avatar
      [cmake] Teach the Clang CMake build to use LLVM_LIBDIR_SUFFIX for its · 3126d021
      Chandler Carruth authored
      'lib' directories in the build. This variable is available now both as
      part of the normal LLVM build an as part of a standalone build as I've
      added it to the LLVMConfig.cmake output.
      
      With this change we should at least put libraries into the multilib
      directory correctly. It is the first step in getting Clang to be
      reasonably multilib aware.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224923 91177308-0d34-0410-b5e6-96231b3b80d8
      3126d021
  9. Dec 04, 2014
  10. Dec 02, 2014
  11. Nov 13, 2014
  12. Nov 06, 2014
  13. Jul 16, 2014
    • Alp Toker's avatar
      Make clang's rewrite engine a core feature · 6c4abb16
      Alp Toker authored
      The rewrite facility's footprint is small so it's not worth going to these
      lengths to support disabling at configure time, particularly since key compiler
      features now depend on it.
      
      Meanwhile the Objective-C rewriters have been moved under the
      ENABLE_CLANG_ARCMT umbrella for now as they're comparatively heavy and still
      potentially worth excluding from lightweight builds.
      
      Tests are now passing with any combination of feature flags. The flags
      historically haven't been tested by LLVM's build servers so caveat emptor.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213171 91177308-0d34-0410-b5e6-96231b3b80d8
      6c4abb16
  14. Jul 15, 2014
  15. Jun 06, 2014
  16. Mar 04, 2014
  17. Feb 26, 2014
  18. Feb 23, 2014
  19. Feb 21, 2014
    • NAKAMURA Takumi's avatar
      [CMake] Get rid of explicit dependencies to include/clang/*.inc and introduce... · 0eed94f6
      NAKAMURA Takumi authored
      [CMake] Get rid of explicit dependencies to include/clang/*.inc and introduce CLANG_TABLEGEN_TARGETS.
      
      This does;
        - clang_tablegen() adds each tblgen'd target to global property CLANG_TABLEGEN_TARGETS as list.
        - List of targets is added to LLVM_COMMON_DEPENDS.
        - all clang libraries and targets depend on generated headers.
      
      You might wonder this would be regression, but in fact, this is little loss.
        - Almost all of clang libraries depend on tblgen'd files and clang-tblgen.
        - clang-tblgen may cause short stall-out but doesn't cause unconditional rebuild.
        - Each library's dependencies to tblgen'd files might vary along headers' structure.
          It made hard to track and update *really optimal* dependencies.
      
      Each dependency to intrinsics_gen and ClangSACheckers is left as DEPENDS.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201842 91177308-0d34-0410-b5e6-96231b3b80d8
      0eed94f6
  20. Feb 13, 2014
  21. Feb 10, 2014
  22. Feb 04, 2014
  23. Feb 02, 2014
  24. Jan 28, 2014
  25. Jan 26, 2014
Loading