Skip to content
  1. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  2. Jan 01, 2013
  3. Dec 31, 2012
    • Michael J. Spencer's avatar
      [AlignOf] Add AlignedCharArray and refactor AlignedCharArrayUnion. · da3e31a4
      Michael J. Spencer authored
      This adds AlignedCharArray<Alignment, Size>. A templated struct that contains
      a member named buffer of type char[Size] that is aligned to Alignment.
      
      llvm-svn: 171319
      da3e31a4
    • Chandler Carruth's avatar
      Begin sketching out the process interface. · 97683aa2
      Chandler Carruth authored
      The coding style used here is not LLVM's style because this is modeled
      after a Boost interface and thus done in the style of a candidate C++
      standard library interface. I'll probably end up proposing it as
      a standard C++ library if it proves to be reasonably portable and
      useful.
      
      This is just the most basic parts of the interface -- getting the
      process ID out of it. However, it helps sketch out some of the boiler
      plate such as the base class, derived class, shared code, and static
      factory function. It also introduces a unittest so that I can
      incrementally ensure this stuff works.
      
      However, I've not even compiled this code for Windows yet. I'll try to
      fix any Windows fallout from the bots, and if I can't fix it I'll revert
      and get someone on Windows to help out. There isn't a lot more that is
      mandatory, so soon I'll switch to just stubbing out the Windows side and
      get Michael Spencer to help with implementation as he can test it
      directly.
      
      llvm-svn: 171289
      97683aa2
  4. Dec 17, 2012
  5. Dec 12, 2012
  6. Dec 05, 2012
  7. Dec 04, 2012
  8. Dec 03, 2012
  9. Nov 30, 2012
    • Chandler Carruth's avatar
      Switch LLVM_USE_RVALUE_REFERENCES to LLVM_HAS_RVALUE_REFERENCES. · f12e3a67
      Chandler Carruth authored
      Rationale:
      1) This was the name in the comment block. ;]
      2) It matches Clang's __has_feature naming convention.
      3) It matches other compiler-feature-test conventions.
      
      Sorry for the noise. =]
      
      I've also switch the comment block to use a \brief tag and not duplicate
      the name.
      
      llvm-svn: 168996
      f12e3a67
  10. Nov 28, 2012
    • Eli Bendersky's avatar
      Add backreference matching capabilities to Support/Regex, with · 10f22d70
      Eli Bendersky authored
      appropriate unit tests. This change in itself is not expected to
      affect any functionality at this point, but it will serve as a
      stepping stone to improve FileCheck's variable matching capabilities.
      
      Luckily, our regex implementation already supports backreferences,
      although a bit of hacking is required to enable it. It supports both
      Basic Regular Expressions (BREs) and Extended Regular Expressions
      (EREs), without supporting backrefs for EREs, following POSIX strictly
      in this respect. And EREs is what we actually use (rightly). This is
      contrary to many implementations (including the default on Linux) of
      POSIX regexes, that do allow backrefs in EREs.
      
      Adding backref support to our EREs is a very simple change in the
      regcomp parsing code. I fail to think of significant cases where it
      would clash with existing things, and can bring more versatility to
      the regexes we write. There's always the danger of a backref in a
      specially crafted regex causing exponential matching times, but since
      we mainly use them for testing purposes I don't think it's a big
      problem. [it can also be placed behind a flag specific to FileCheck,
      if needed].
      
      For more details, see:
      
      * http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-November/055840.html
      * http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121126/156878.html
      
      llvm-svn: 168802
      10f22d70
  11. Nov 20, 2012
    • Sean Silva's avatar
      Allow using MemoryBuffers with yaml::Stream directly. · aba8270d
      Sean Silva authored
      The rationale is to get YAML filenames in diagnostics from
      yaml::Stream::printError -- currently the filename is hard-coded as
      "YAML" because there's no buffer information available.
      
      Patch by Kim Gräsman!
      
      llvm-svn: 168341
      aba8270d
  12. Nov 17, 2012
  13. Nov 14, 2012
  14. Nov 10, 2012
  15. Oct 12, 2012
    • Sean Silva's avatar
      Casting.h: Automatically handle isa<Base>(Derived). · 35dd8779
      Sean Silva authored
      Additionally, all such cases are handled with no dynamic check.
      
      All `classof()` of the form
      
          class Foo {
            [...]
            static bool classof(const Bar *) { return true; }
            [...]
          }
      
      where Foo is an ancestor of Bar are no longer necessary.
      Don't write them!
      
      Note: The exact test is `is_base_of<Foo, Bar>`, which is non-strict, so
      that Foo is considered an ancestor of itself.
      
      This leads to the following rule of thumb for LLVM-style RTTI:
      
          The argument type of `classof()` should be a strict ancestor.
      
      For more information about implementing LLVM-style RTTI, see
      docs/HowToSetUpLLVMStyleRTTI.rst
      
      llvm-svn: 165765
      35dd8779
  16. Oct 04, 2012
  17. Sep 19, 2012
  18. Sep 15, 2012
  19. Aug 21, 2012
  20. Aug 20, 2012
  21. Aug 17, 2012
  22. Aug 15, 2012
  23. Aug 13, 2012
  24. Aug 01, 2012
  25. Jul 23, 2012
  26. Jul 16, 2012
Loading