Skip to content
  1. Mar 28, 2016
    • Duncan P. N. Exon Smith's avatar
      Bitcode: Add SimpleBitstreamCursor::setArtificialByteLimit · 58c7d495
      Duncan P. N. Exon Smith authored
      Allow users of SimpleBitstreamCursor to limit the number of bytes
      available to the cursor.  This is preparation for instantiating a cursor
      that isn't allowed to load more bytes from a StreamingMemoryObject (just
      move around the ones already-loaded).
      
      llvm-svn: 264547
      58c7d495
    • Duncan P. N. Exon Smith's avatar
      Bitcode: Add SimpleBitstreamCursor::getPointerToByte, etc. · d3be62dd
      Duncan P. N. Exon Smith authored
      Add API to SimpleBitstreamCursor to allow users to translate between
      byte addresses and pointers.
      
        - jumpToPointer: move the bit position to a particular pointer.
        - getPointerToByte: get the pointer for a particular byte.
        - getPointerToBit: get the pointer for the byte of the current bit.
        - getCurrentByteNo: convenience function for assertions and tests.
      
      Mainly adds unit tests (getPointerToBit/Byte already has a use), but
      also preparation for eventually using jumpToPointer.
      
      llvm-svn: 264546
      d3be62dd
    • Duncan P. N. Exon Smith's avatar
      Bitcode: Split out SimpleBitstreamCursor · d766d136
      Duncan P. N. Exon Smith authored
      Split out SimpleBitstreamCursor from BitstreamCursor, which is a
      lower-level cursor with no knowledge of bitcode blocks, abbreviations,
      or records.  It just knows how to read bits and navigate the stream.
      
      This is mainly organizational, to separate the API for manipulating raw
      bits from that for bitcode concepts like Record and Block.
      
      llvm-svn: 264545
      d766d136
  2. Mar 27, 2016
    • JF Bastien's avatar
      Revert "isPodLike: more precise" · baf4459b
      JF Bastien authored
      This reverts commit c45f2afac5d6855a4804456a0f718563dc47ada0.
      
      Looks like it may be causing a failure, I'll revert for now.
      
                       from
      lib/CodeGen/AsmPrinter/DwarfDebug.cpp:14:
      /usr/include/c++/4.9.2/bits/stl_pair.h: In instantiation of
                       'std::pair<_T1, _T2>& std::pair<_T1,
                       _T2>::operator=(const std::pair<_T1, _T2>&) [with _T1 =
                       std::unique_ptr<llvm::DwarfTypeUnit>; _T2 = const
                       llvm::DICompositeType*]':
      
      /usr/include/c++/4.9.2/bits/stl_pair.h:160:8: error: use of deleted
      function 'std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp,
      _Dp>::operator=(const std::unique_ptr<_Tp, _Dp>&) [with _Tp =
      llvm::DwarfTypeUnit; _Dp = std::default_delete<llvm::DwarfTypeUnit>]'
        first = __p.first;
              ^
      
      llvm-svn: 264544
      baf4459b
    • Sanjay Patel's avatar
      workaround for an IR variable named %. · 1768117d
      Sanjay Patel authored
      (which SimplifyCFG can produce...)
      
      llvm-svn: 264543
      1768117d
    • Sanjay Patel's avatar
      add scrubber for excessive leading whitespace · d859271d
      Sanjay Patel authored
      llvm-svn: 264542
      d859271d
    • JF Bastien's avatar
      isPodLike: more precise · 507d696c
      JF Bastien authored
      I tried to use isPodLike in:
        http://reviews.llvm.org/D18483
      
      That failed because !is_class is too strict on platforms which don't yet
      have is_trivially_copyable. This update tries to make isPodLike smarter
      for platforms which don't have is_trivially_copyable, and AFAICT it
      Should Just Work on all of them. I'll revert if the bots disagree with
      me.
      
      I'll also rename isPodLike to isTriviallyCopyable if this all works out,
      since that's what the standard calls it now and one day we'll be rid of
      isPodLike.
      
      llvm-svn: 264541
      507d696c
    • Richard Smith's avatar
      [modules] When encoding SourceLocations in bitcode, rotate the 'is macro' flag · b22a1d18
      Richard Smith authored
      bit from the top bit to the bottom bit, so that we don't need 6 VBR6 hunks for
      each macro location. Reduces libstdc++ module size by about 1%.
      
      llvm-svn: 264540
      b22a1d18
    • Richard Thomson's avatar
      clang-tidy: Add check modernize-raw-string-literal · 8930aab8
      Richard Thomson authored
      llvm-svn: 264539
      8930aab8
    • Teresa Johnson's avatar
      Use DAG check to try to appease bot · 569af59b
      Teresa Johnson authored
      Try to appease
      http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/34772. This was
      the only check that didn't use DAG and it wasn't found.
      
      llvm-svn: 264538
      569af59b
    • Teresa Johnson's avatar
      [ThinLTO] Add optional import message and statistics · d29478f7
      Teresa Johnson authored
      Summary:
      Add a statistic to count the number of imported functions. Also, add a
      new -print-imports option to emit a trace of imported functions, that
      works even for an NDEBUG build.
      
      Note that emitOptimizationRemark does not work for the above printing as
      it expects a Function object and DebugLoc, neither of which we have
      with summary-based importing.
      
      This is part 2 of D18487, the first part was committed separately as
      r264536.
      
      Reviewers: joker.eph
      
      Subscribers: llvm-commits, joker.eph
      
      Differential Revision: http://reviews.llvm.org/D18487
      
      llvm-svn: 264537
      d29478f7
    • Teresa Johnson's avatar
      [ThinLTO] Don't try to import alias unless aliasee can be imported · 9aae395f
      Teresa Johnson authored
      With r264503, aliases are now being added to the GlobalsToImport set
      even when their aliasees can't be imported due to their linkage type.
      While the importing worked correctly (the aliases imported as
      declarations) due to the logic in doImportAsDefinition, there is no
      point to adding them to the GlobalsToImport set.
      
      Additionally, with D18487 it was resulting in incorrectly printing a
      message indicating that the alias was imported.
      
      To avoid this, delay adding aliases to the GlobalsToImport set until
      after the linkage type of the aliasee is checked.
      
      This patch is part of D18487.
      
      llvm-svn: 264536
      9aae395f
    • Hal Finkel's avatar
      Fixing the non-x86 build by removing dependence on kmp_cpuid_t · 01bb2406
      Hal Finkel authored
      The problem is that the definition of kmp_cpuinfo_t contains:
      
        char       name [3*sizeof (kmp_cpuid_t)]; // CPUID(0x80000002,0x80000003,0x80000004)
      
      and kmp_cpuid_t is only defined when compiling for x86.
      
      Differential Revision: http://reviews.llvm.org/D18245
      
      llvm-svn: 264535
      01bb2406
    • Richard Smith's avatar
      Encapsulate a couple of on-disk structures a little more. · cb34bd3a
      Richard Smith authored
      llvm-svn: 264534
      cb34bd3a
    • Richard Smith's avatar
      34da7514
    • Hal Finkel's avatar
      [PowerPC] Map max/minnum intrinsics and fmax/fmin to ISD nodes for CTR-based loop legality · 0b37175c
      Hal Finkel authored
      Intrinsic::maxnum and Intrinsic::minnum, along with the associated libc
      function calls (fmax[f], etc.) generally map to function calls after lowering.
      For some vector types with QPX at least, however, we can legally lower these,
      and we don't need to prohibit CTR-based loops on their account.
      
      It turned out, however, that the logic that checked the opcodes associated with
      intrinsics was broken (it would set the Opcode variable, but that variable was
      later checked only if set for some otherwise-external function call.
      
      This fixes the latter problem and adds the FMAX/MINNUM mappings.
      
      llvm-svn: 264532
      0b37175c
    • Richard Thomson's avatar
      Add clang-tools-extra release notes · f95aa56c
      Richard Thomson authored
      llvm-svn: 264531
      f95aa56c
    • David Majnemer's avatar
      Use the correct alignment for uuid descriptors · 65687600
      David Majnemer authored
      The _GUID_ descriptors emitted by MSVC have alignment 8 for 64-bit
      builds: we should do the same if the linker picks the "wrong" COMDAT.
      
      llvm-svn: 264530
      65687600
    • David Majnemer's avatar
      Improve the representation of CXXUuidofExpr · 1dbc7a7a
      David Majnemer authored
      Keep a pointer to the UuidAttr that the CXXUuidofExpr corresponds to.
      This makes translating from __uuidof to the underlying constant a lot
      more straightforward.
      
      llvm-svn: 264529
      1dbc7a7a
    • Michael Kruse's avatar
      [Verifier] Reject PHIs using defs from own block. · ff379b69
      Michael Kruse authored
      Reject the following IR as malformed (assuming that %entry, %next are
      not in a loop):
      
          next:
            %y = phi i32 [ 0, %entry ]
            %x = phi i32 [ %y, %entry ]
      
      Such PHI nodes came up in PR26718. While there was no consensus on
      whether or not this is valid IR, most opinions on that bug and in a
      discussion on the llvm-dev mailing list tended towards a
      "strict interpretation" (term by Joseph Tremoulet) of PHI node uses.
      Also, the language reference explicitly states that "the use of each
      incoming value is deemed to occur on the edge from the corresponding
      predecessor block to the current block" and
      `DominatorTree::dominates(Instruction*, Use&)` uses this definition as
      well.
      
      For the code mentioned in PR15384, clang does not compile to such PHIs
      (anymore?). The test case still hangs when replacing `%tmp6` with `%tmp`
      in revisions before r176366 (where PR15384 has been fixed). The
      occurrence of %tmp6 therefore was probably unintentional. Its value is
      not used except in other PHIs.
      
      Reviewers: majnemer, reames, JosephTremoulet, bkramer, grosser, jdoerfert, kparzysz, sanjoy
      
      Differential Revision: http://reviews.llvm.org/D18443
      
      llvm-svn: 264528
      ff379b69
    • Sanjay Patel's avatar
      796db35f
    • Sanjay Patel's avatar
      minimize test cases · 342f7c7e
      Sanjay Patel authored
      These are tests for store transforms. 
      The loads, adds, and geps were irrelevant.
      
      llvm-svn: 264526
      342f7c7e
  3. Mar 26, 2016
Loading