Skip to content
  1. Apr 21, 2012
  2. Mar 01, 2012
  3. Feb 29, 2012
  4. Feb 28, 2012
  5. Feb 13, 2012
    • Dylan Noblesmith's avatar
      add LLVM_VERSION_MAJOR and _MINOR defines · c6c7a581
      Dylan Noblesmith authored
      This is useful for clients that want to maintain compatibility
      across multiple releases of LLVM. Currently users like Klee and
      Mesa all have to roll their own 'parse llvm-config --version
      output and generate defines' solution.
      
      Also reuse the new macros so that version information is less
      redundant/likely to fall out of sync again in the future.
      
      llvm-svn: 150405
      c6c7a581
  6. Jan 30, 2012
  7. Jan 25, 2012
  8. Jan 24, 2012
  9. Jan 20, 2012
  10. Dec 16, 2011
  11. Dec 12, 2011
  12. Dec 10, 2011
    • Chandler Carruth's avatar
      Use a simpler and more reliable command for converting from HEAD to · 29dad49c
      Chandler Carruth authored
      commit-ish. Funny thing, they have a command designed for this. ;]
      
      llvm-svn: 146325
      29dad49c
    • Chandler Carruth's avatar
      Teach the VCS detection to set some root-level variables with the raw · 7514da90
      Chandler Carruth authored
      revision and git commit data extracted. This will be used in the Clang
      CMake build to avoid trying to re-detect the information.
      
      llvm-svn: 146324
      7514da90
    • Chandler Carruth's avatar
      At the request of Michael Spencer, make the VCS version detection logic · 667f217a
      Chandler Carruth authored
      in CMake a bit more handy. Previously we would get such charming
      versions as the following for revision NNNN and commit-ish XXXXX:
        3.1svnsvn-rNNNN
        3.1svngit-svn-rNNNN
        3.1svngit-svn-XXXXX
      
      The mechanism selecting betwene the latter two was particularly odd, and
      didn't work with all of the ways git-svn repos are set up apparently. It
      also misses an important point -- both the revision *and* the git commit
      might be relevant when working on a local branch some distance from
      mainline. The new logic does several things:
      
      1) It strips the redundant initial 'svn'.
      2) It always looks for a git-svn revision number base, and when found
         includes it in the version.
      3) If the git commit-ish for the current HEAD is not exactly that
         revision number, it is also included.
      
      The resulting strings should roughly be:
        3.1svn-rNNNN
        3.1git-svn-rNNNN
        3.1git-svn-rNNNN-XXXXX
      
      Suggestions on formatting etc always welcome. =] I've only looked at the
      LLVM version string here, not Clang's (yet).
      
      Note that the commit-ish reported is *not* terribly accurate. It updates
      when 'cmake' is run, not when the binary is built. Still, it may be
      better than nothing, especially if people have fairly long-lived git
      repos and branches. This is not a new limitation, just didn't want
      anyone to be surprised.
      
      llvm-svn: 146323
      667f217a
  13. Nov 29, 2011
  14. Nov 07, 2011
  15. Nov 04, 2011
  16. Nov 02, 2011
    • Chandler Carruth's avatar
      Fix a typo noticed by Peter Collingbourne. No one depends on this · 3198cc73
      Chandler Carruth authored
      working today, but it shouldn't corrupt state for some poor soul to
      debug later.
      
      llvm-svn: 143545
      3198cc73
    • Chandler Carruth's avatar
      The TableGen parts of the CMake build are seriously broken. This fixes · 39bf89b3
      Chandler Carruth authored
      one aspect of them by having them use the (annoying, if not broken)
      proper library dependency model for adding the LLVMTableGen library as
      a dependency. This could manifest as a link order issue in the presence
      of separate LLVM / Clang source builds with CMake and a linker that
      really cares about such things.
      
      Also, add the Support dependency to llvm-tblgen itself so that it
      doesn't rely on TableGen's transitive Support dependency. A parallel
      change for clang-tblgen will be forthcoming.
      
      llvm-svn: 143531
      39bf89b3
  17. Oct 11, 2011
  18. Oct 06, 2011
  19. Sep 19, 2011
  20. Sep 05, 2011
  21. Aug 17, 2011
  22. Aug 16, 2011
  23. Jul 30, 2011
    • Chandler Carruth's avatar
      Remove yet another buried and hidden implicit dependency: every single · b58053bb
      Chandler Carruth authored
      sub-library for the targets depended on the core target CodeGen library.
      This completely undermined the careful work to separate the those
      libraries, especially the MC-layer ones. This surfaced as circular
      dependencies when the libraries were built as shared libraries where
      CMake doesn't allow cycles.
      
      This should fix PR10537. I'll watch the bots to see if there is fallout
      on other platforms.
      
      llvm-svn: 136565
      b58053bb
    • Chandler Carruth's avatar
      Make my attempt to build up global deps variables actually utilize · 68b23116
      Chandler Carruth authored
      globally scoped constructs. Also, round-trip these dependencies through
      the LLVMConfig.cmake.in file thata is used by CMake-based clients of
      "installed" (or built) LLVM trees.
      
      llvm-svn: 136543
      68b23116
  24. Jul 29, 2011
    • Chandler Carruth's avatar
      Rewrite the CMake build to use explicit dependencies between libraries, · 9d7feab3
      Chandler Carruth authored
      specified in the same file that the library itself is created. This is
      more idiomatic for CMake builds, and also allows us to correctly specify
      dependencies that are missed due to bugs in the GenLibDeps perl script,
      or change from compiler to compiler. On Linux, this returns CMake to
      a place where it can relably rebuild several targets of LLVM.
      
      I have tried not to change the dependencies from the ones in the current
      auto-generated file. The only places I've really diverged are in places
      where I was seeing link failures, and added a dependency. The goal of
      this patch is not to start changing the dependencies, merely to move
      them into the correct location, and an explicit form that we can control
      and change when necessary.
      
      This also removes a serialization point in the build because we don't
      have to scan all the libraries before we begin building various tools.
      We no longer have a step of the build that regenerates a file inside the
      source tree. A few other associated cleanups fall out of this.
      
      This isn't really finished yet though. After talking to dgregor he urged
      switching to a single CMake macro to construct libraries with both
      sources and dependencies in the arguments. Migrating from the two macros
      to that style will be a follow-up patch.
      
      Also, llvm-config is still generated with GenLibDeps.pl, which means it
      still has slightly buggy dependencies. The internal CMake
      'llvm-config-like' macro uses the correct explicitly specified
      dependencies however. A future patch will switch llvm-config generation
      (when using CMake) to be based on these deps as well.
      
      This may well break Windows. I'm getting a machine set up now to dig
      into any failures there. If anyone can chime in with problems they see
      or ideas of how to solve them for Windows, much appreciated.
      
      llvm-svn: 136433
      9d7feab3
  25. Jul 28, 2011
  26. Jul 26, 2011
    • Chandler Carruth's avatar
      Still more library dependency updates. This reflects the ever decreasing · 35c383ec
      Chandler Carruth authored
      dependence on CodeGen layers and backends from the MC layers.
      
      llvm-svn: 136024
      35c383ec
    • Chandler Carruth's avatar
      Clean up a pile of hacks in our CMake build relating to TableGen. · 97c069c1
      Chandler Carruth authored
      The first problem to fix is to stop creating synthetic *Table_gen
      targets next to all of the LLVM libraries. These had no real effect as
      CMake specifies that add_custom_command(OUTPUT ...) directives (what the
      'tablegen(...)' stuff expands to) are implicitly added as dependencies
      to all the rules in that CMakeLists.txt.
      
      These synthetic rules started to cause problems as we started more and
      more heavily using tablegen files from *subdirectories* of the one where
      they were generated. Within those directories, the set of tablegen
      outputs was still available and so these synthetic rules added them as
      dependencies of those subdirectories. However, they were no longer
      properly associated with the custom command to generate them. Most of
      the time this "just worked" because something would get to the parent
      directory first, and run tablegen there. Once run, the files existed and
      the build proceeded happily. However, as more and more subdirectories
      have started using this, the probability of this failing to happen has
      increased. Recently with the MC refactorings, it became quite common for
      me when touching a large enough number of targets.
      
      To add insult to injury, several of the backends *tried* to fix this by
      adding explicit dependencies back to the parent directory's tablegen
      rules, but those dependencies didn't work as expected -- they weren't
      forming a linear chain, they were adding another thread in the race.
      
      This patch removes these synthetic rules completely, and adds a much
      simpler function to declare explicitly that a collection of tablegen'ed
      files are referenced by other libraries. From that, we can add explicit
      dependencies from the smaller libraries (such as every architectures
      Desc library) on this and correctly form a linear sequence. All of the
      backends are updated to use it, sometimes replacing the existing attempt
      at adding a dependency, sometimes adding a previously missing dependency
      edge.
      
      Please let me know if this causes any problems, but it fixes a rather
      persistent and problematic source of build flakiness on our end.
      
      llvm-svn: 136023
      97c069c1
  27. Jul 25, 2011
  28. Jul 22, 2011
    • Chandler Carruth's avatar
      Move TargetRegistry.cpp from lib/Support to lib/Target where it belongs. · 43025a08
      Chandler Carruth authored
      The header file was already properly located. The previous need for it
      in Support had to do with the version string printing which was fixed in
      r135757.
      
      Also update build dependencies where libraries that needed the
      functionality of the Target library (in the form of the TargetRegistry)
      were picking it up via Support. This is pretty pervasive, essentially
      every TargetInfo library (ARMInfo, etc) uses TargetRegistry, making it
      depend on Target. All of these were previously just sneaking by.
      
      llvm-svn: 135760
      43025a08
Loading