Skip to content
  1. Mar 28, 2016
    • Hal Finkel's avatar
      C++11 is required, remove some preprocessor checks for it · 29f5131d
      Hal Finkel authored
      We require C++11 to build, so remove a few remaining preprocessor checks for
      '__cplusplus >= 201103L'. This should always be true.
      
      llvm-svn: 264572
      29f5131d
    • Kuba Brecka's avatar
      Fix-up for OS X test failure after r264451 ("Add memset, memmove, and memcpy... · 2f5d8ff1
      Kuba Brecka authored
      Fix-up for OS X test failure after r264451 ("Add memset, memmove, and memcpy to the common interceptors")
      
      llvm-svn: 264571
      2f5d8ff1
    • Alexey Bataev's avatar
      Revert "[OPENMP] Allow runtime insert its own code inside OpenMP regions." · f662b594
      Alexey Bataev authored
      This reverts commit 3ee791165100607178073f14531a0dc90c622b36.
      
      llvm-svn: 264570
      f662b594
    • Alexey Bataev's avatar
      [OPENMP] Allow runtime insert its own code inside OpenMP regions. · b8c425c4
      Alexey Bataev authored
      Solution unifies interface of RegionCodeGenTy type to allow insert
      runtime-specific code before/after main codegen action defined in
      CGStmtOpenMP.cpp file. Runtime should not define its own RegionCodeGenTy
      for general OpenMP directives, but must be allowed to insert its own
        (required) code to support target specific codegen.
      
      llvm-svn: 264569
      b8c425c4
    • Chuang-Yu Cheng's avatar
      [Power9] Implement new altivec instructions: bcd* series · d5eb774e
      Chuang-Yu Cheng authored
      This patch implements the following altivec instructions:
      
      - Decimal Convert From/to National/Zoned/Signed-QWord:
          bcdcfn. bcdcfz. bcdctn. bcdctz. bcdcfsq. bcdctsq.
      
      - Decimal Copy-Sign/Set-Sign:
          bcdcpsgn. bcdsetsgn.
      
      - Decimal Shift/Unsigned-Shift/Shift-and-Round:
          bcds. bcdus. bcdsr.
      
      - Decimal (Unsigned) Truncate:
          bcdtrunc. bcdutrunc.
      
      Total 13 instructions
      
      Thanks Amehsan's advice! Thanks Kit's great help!
      Reviewers: hal, nemanja, kbarton, tjablin, amehsan
      
      http://reviews.llvm.org/D17838
      
      llvm-svn: 264568
      d5eb774e
    • Chuang-Yu Cheng's avatar
      [Power9] Implement new vsx instructions: insert, extract, test data class,... · 80722719
      Chuang-Yu Cheng authored
      [Power9] Implement new vsx instructions: insert, extract, test data class, min/max, reverse, permute, splat
      
      This change implements the following vsx instructions:
      
      - Scalar Insert/Extract
          xsiexpdp xsiexpqp xsxexpdp xsxsigdp xsxexpqp xsxsigqp
      
      - Vector Insert/Extract
          xviexpdp xviexpsp xvxexpdp xvxexpsp xvxsigdp xvxsigsp
          xxextractuw xxinsertw
      
      - Scalar/Vector Test Data Class
          xststdcdp xststdcsp xststdcqp
          xvtstdcdp xvtstdcsp
      
      - Maximum/Minimum
          xsmaxcdp xsmaxjdp
          xsmincdp xsminjdp
      
      - Vector Byte-Reverse/Permute/Splat
          xxbrd xxbrh xxbrq xxbrw
          xxperm xxpermr
          xxspltib
      
      30 instructions
      
      Thanks Nemanja for invaluable discussion! Thanks Kit's great help!
      Reviewers: hal, nemanja, kbarton, tjablin, amehsan
      
      http://reviews.llvm.org/D16842
      
      llvm-svn: 264567
      80722719
    • Elena Demikhovsky's avatar
      AVX-512: Fixed ICMP instruction selection for i1 operands · 83f0647d
      Elena Demikhovsky authored
      ICMP instruction selection fails on SKX and KNL for i1 operand.
      I use XOR to resolve:
      (A == B) is equivalent to (A xor B) == 0
      
      Differential Revision: http://reviews.llvm.org/D18511
      
      llvm-svn: 264566
      83f0647d
    • Chuang-Yu Cheng's avatar
      [Power9] Implement new vsx instructions: quad-precision move, fp-arithmetic · 56638489
      Chuang-Yu Cheng authored
      This change implements the following vsx instructions:
      
      - quad-precision move
          xscpsgnqp, xsabsqp, xsnegqp, xsnabsqp
      
      - quad-precision fp-arithmetic
          xsaddqp(o) xsdivqp(o) xsmulqp(o) xssqrtqp(o) xssubqp(o)
          xsmaddqp(o) xsmsubqp(o) xsnmaddqp(o) xsnmsubqp(o)
      
      22 instructions
      
      Thanks Nemanja and Kit for careful review and invaluable discussion!
      Reviewers: hal, nemanja, kbarton, tjablin, amehsan
      
      http://reviews.llvm.org/D16110
      
      llvm-svn: 264565
      56638489
    • Richard Smith's avatar
      P0138R2: Allow direct-list-initialization of an enumeration from an integral · ed638864
      Richard Smith authored
      value that can convert to the enum's underlying type.
      
      llvm-svn: 264564
      ed638864
    • Richard Thomson's avatar
      clang-tidy: Fix broken buildbot · 17d5b81f
      Richard Thomson authored
      VS 2013 does not support char16_t or char32_t
      
      llvm-svn: 264563
      17d5b81f
    • David Majnemer's avatar
      Fix serialization/deserialization for __uuidof · 2041b46b
      David Majnemer authored
      I broke this back in r264529 because I forgot to serialize the UuidAttr
      member.  Fix this by replacing the UuidAttr with a StringRef which is
      properly serialized and deserialized.
      
      llvm-svn: 264562
      2041b46b
    • NAKAMURA Takumi's avatar
      a51d6ea9
    • Rafael Espindola's avatar
      R_AARCH64_PREL64 is relative. · 07275534
      Rafael Espindola authored
      llvm-svn: 264560
      07275534
    • Vedant Kumar's avatar
      [Coverage] Fix the way we load "<unknown>:func" records · 141ed944
      Vedant Kumar authored
      When emitting coverage mappings for functions with local linkage and an
      unknown filename, we use "<unknown>:func" for the PGO function name. The
      problem is that we don't strip "<unknown>" from the name when loading
      coverage data, like we do for other file names. Fix that and add a test.
      
      llvm-svn: 264559
      141ed944
    • Duncan P. N. Exon Smith's avatar
      BitcodeWriter: Replace dead code with an assertion, NFC · 544e4f97
      Duncan P. N. Exon Smith authored
      The caller of ValueEnumerator::EnumerateOperandType never sends in
      metadata.  Assert that, and remove the unnecessary logic.
      
      llvm-svn: 264558
      544e4f97
    • Duncan P. N. Exon Smith's avatar
      BitcodeWriter: Reuse writeMetadataRecords, NFC · b42fa2e5
      Duncan P. N. Exon Smith authored
      Change writeFunctionMetadata to call writeMetadataRecords.  For now
      there's no functionality change, but makes it easy to serialize other
      types of metadata in the function block in the future.
      
      llvm-svn: 264557
      b42fa2e5
    • Duncan P. N. Exon Smith's avatar
      BitcodeWriter: Rename some functions for consistency, NFC · cffd8cb9
      Duncan P. N. Exon Smith authored
      To match writeMetadataRecords, writeNamedMetadata and
      writeMetadataStrings, change:
      
          WriteModuleMetadata        => writeModuleMetadata
          WriteFunctionLocalMetadata => writeFunctionMetadata
          Write##CLASS               => write##CLASS
      
      The only major change is "FunctionLocal" => "Function".  The point is to
      be less specific, in preparation for emitting normal metadata records
      inside function metadata blocks (currently we only emit
      `LocalAsMetadata` there).
      
      llvm-svn: 264556
      cffd8cb9
    • Duncan P. N. Exon Smith's avatar
      BitcodeWriter: Split out writeMetadataRecords, NFC · 80d153f6
      Duncan P. N. Exon Smith authored
      Besides being a nice cleanup, this is preparation for reusing the code
      in function metadata blocks.
      
      llvm-svn: 264555
      80d153f6
    • Duncan P. N. Exon Smith's avatar
      BitcodeWriter: Restructure WriteFunctionLocalMetadata, NFC · 5465f0ad
      Duncan P. N. Exon Smith authored
      Use an early return to simplify logic.
      
      llvm-svn: 264554
      5465f0ad
    • Duncan P. N. Exon Smith's avatar
      Bitcode: Fix MSVC bot failure from r264549 · 0f571458
      Duncan P. N. Exon Smith authored
      make_unique => llvm::make_unique
      
      llvm-svn: 264553
      0f571458
    • Duncan P. N. Exon Smith's avatar
      BitcodeWriter: Simplify tracking of function-local metadata, NFC · 2766e4d4
      Duncan P. N. Exon Smith authored
      We don't really need a separate vector here; instead, point at a range
      inside the main MDs array.  This matches how r264551 references the
      ranges of strings and non-strings.
      
      llvm-svn: 264552
      2766e4d4
    • Duncan P. N. Exon Smith's avatar
      Reapply ~"Bitcode: Collect all MDString records into a single blob" · 6565a0d4
      Duncan P. N. Exon Smith authored
      Spiritually reapply commit r264409 (reverted in r264410), albeit with a
      bit of a redesign.
      
      Firstly, avoid splitting the big blob into multiple chunks of strings.
      
      r264409 imposed an arbitrary limit to avoid a massive allocation on the
      shared 'Record' SmallVector.  The bug with that commit only reproduced
      when there were more than "chunk-size" strings.  A test for this would
      have been useless long-term, since we're liable to adjust the chunk-size
      in the future.
      
      Thus, eliminate the motivation for chunk-ing by storing the string sizes
      in the blob.  Here's the layout:
      
          vbr6: # of strings
          vbr6: offset-to-blob
          blob:
             [vbr6]: string lengths
             [char]: concatenated strings
      
      Secondly, make the output of llvm-bcanalyzer readable.
      
      I noticed when debugging r264409 that llvm-bcanalyzer was outputting a
      massive blob all in one line.  Past a small number, the strings were
      impossible to split in my head, and the lines were way too long.  This
      version adds support in llvm-bcanalyzer for pretty-printing.
      
          <STRINGS abbrevid=4 op0=3 op1=9/> num-strings = 3 {
            'abc'
            'def'
            'ghi'
          }
      
      From the original commit:
      
      Inspired by Mehdi's similar patch, http://reviews.llvm.org/D18342, this
      should (a) slightly reduce bitcode size, since there is less record
      overhead, and (b) greatly improve reading speed, since blobs are super
      cheap to deserialize.
      
      llvm-svn: 264551
      6565a0d4
    • Duncan P. N. Exon Smith's avatar
      BitcodeWriter: Simplify and test writing blobs, NFC · 376fa260
      Duncan P. N. Exon Smith authored
      Split helper out of EmitRecordWithAbbrevImpl called emitBlob to reduce
      code duplication, and add a few tests for it.
      
      No functionality change intended.
      
      llvm-svn: 264550
      376fa260
    • Duncan P. N. Exon Smith's avatar
      Support: Implement StreamingMemoryObject::getPointer · 456c9968
      Duncan P. N. Exon Smith authored
      The implementation is fairly obvious.  This is preparation for using
      some blobs in bitcode.
      
      For clarity (and perhaps future-proofing?), I moved the call to
      JumpToBit in BitstreamCursor::readRecord ahead of calling
      MemoryObject::getPointer, since JumpToBit can theoretically (a) read
      bytes, which (b) invalidates the blob pointer.
      
      This isn't strictly necessary the two memory objects we have:
      
        - The return of RawMemoryObject::getPointer is valid until the memory
          object is destroyed.
      
        - StreamingMemoryObject::getPointer is valid until the next chunk is
          read from the stream.  Since the JumpToBit call is only going ahead
          to a word boundary, we'll never load another chunk.
      
      However, reordering makes it clear by inspection that the blob returned
      by BitstreamCursor::readRecord will be valid.
      
      I added some tests for StreamingMemoryObject::getPointer and
      BitstreamCursor::readRecord.
      
      llvm-svn: 264549
      456c9968
    • Duncan P. N. Exon Smith's avatar
      Support: Move StreamingMemoryObject{,Test}.cpp, NFC · 6648a081
      Duncan P. N. Exon Smith authored
      Change the filename to indicate this is a test, rename the tests, move
      them into an anonymous namespace, and rename some variables.  All to
      match our usual style before making further changes.
      
      llvm-svn: 264548
      6648a081
    • 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
Loading