Skip to content
  1. Jan 29, 2018
    • Amaury Sechet's avatar
      Add test case for truncated and promotion to test. NFC · 9827d8ed
      Amaury Sechet authored
      llvm-svn: 323663
      9827d8ed
    • Alexey Bataev's avatar
      [SLP] Fix for PR32086: Count InsertElementInstr of the same elements as shuffle. · 9c5c1032
      Alexey Bataev authored
      Summary:
      If the same value is going to be vectorized several times in the same
      tree entry, this entry is considered to be a gather entry and cost of
      this gather is counter as cost of InsertElementInstrs for each gathered
      value. But we can consider these elements as ShuffleInstr with
      SK_PermuteSingle shuffle kind.
      
      Reviewers: spatel, RKSimon, mkuper, hfinkel
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D38697
      
      llvm-svn: 323662
      9c5c1032
    • Alexey Bataev's avatar
      [SLP] Add a test with extract for PR32086, NFC. · 10f5c9e7
      Alexey Bataev authored
      llvm-svn: 323661
      10f5c9e7
    • Jonas Devlieghere's avatar
      [AccelTable] Try making MSVC happy · ba8daf09
      Jonas Devlieghere authored
      MSVC complains that the constexpr "expression did not evaluate to a
      constant". Trying to make it happy by adding a `const` specifier as
      suggested in https://stackoverflow.com/questions/37574343.
      
      llvm-svn: 323659
      ba8daf09
    • Jonas Devlieghere's avatar
      [AccelTable] Fix undefined reference · 01acc9d8
      Jonas Devlieghere authored
      Fixes the missing reference in AppleAccelTableData by making the method
      pure virtual as intended.
      
      llvm-svn: 323656
      01acc9d8
    • Jonas Devlieghere's avatar
      [dsymutil] Generate Apple accelerator tables · 5ead3a2b
      Jonas Devlieghere authored
      This patch adds support for generating accelerator tables in dsymutil.
      This feature was already present in our internal repository but not yet
      upstreamed because it requires changes to the Apple accelerator table
      implementation.
      
      Differential revision: https://reviews.llvm.org/D42501
      
      llvm-svn: 323655
      5ead3a2b
    • Jonas Devlieghere's avatar
      [NFC] Rename DwarfAccelTable and move header. · 855fc3bb
      Jonas Devlieghere authored
      This patch renames DwarfAccelTable.{h,cpp} to AccelTable.{h,cpp} and
      moves the header to the include dir so it is accessible by the
      dsymutil implementation.
      
      Differential revision: https://reviews.llvm.org/D42529
      
      llvm-svn: 323654
      855fc3bb
    • Jonas Devlieghere's avatar
      [NFC] Refactor Apple Accelerator Tables · e699dfaa
      Jonas Devlieghere authored
      This patch refactors the way data is stored in the accelerator table and
      makes them truly generic. There have been several attempts to do this in
      the past:
      
       - D8215 & D8216: Using a union and partial hardcoding.
       - D11805: Using inheritance.
       - D42246: Using a callback.
      
      In the end I didn't like either of them, because for some reason or
      another parts of it felt hacky or decreased runtime performance. I
      didn't want to completely rewrite them as I was hoping that we could
      reuse parts for the successor in the DWARF standard. However, it seems
      less and less likely that there will be a lot of opportunities for
      sharing code and/or an interface.
      
      Originally I choose to template the whole class, because it introduces
      no performance overhead compared to the original implementation.
      
      We ended up settling on a hybrid between a templated method and a
      virtual call to emit the data. The motivation is that we don't want to
      increase code size for a feature that should soon be superseded by the
      DWARFv5 accelerator tables. While the code will continue to be used for
      compatibility, it won't be on the hot path. Furthermore this does not
      regress performance compared to Apple's internal implementation that
      already uses virtual calls for this.
      
      A quick summary for why these changes are necessary: dsymutil likes to
      reuse the current implementation of the Apple accelerator tables.
      However, LLDB expects a slightly different interface than what is
      currently emitted. Additionally, in dsymutil we only have offsets and no
      actual DIEs.
      
      Although the patch suggests a lot of code has changed, this change is
      pretty straightforward:
      
       - We created an abstract class `AppleAccelTableData` to serve as an
         interface for the different data classes.
       - We created two implementations of this class, one for type tables and
         one for everything else. There will be a third one for dsymutil that
         takes just the offset.
       - We use the supplied class to deduct the atoms for the header which
         makes the structure of the table fully self contained, although not
         enforced by the interface as was the case for the fully templated
         approach.
       - We renamed the prefix from DWARF- to Apple- to make space for the
         future implementation of .debug_names.
      
      This change is NFC and relies on the existing tests.
      
      Differential revision: https://reviews.llvm.org/D42334
      
      llvm-svn: 323653
      e699dfaa
    • Dmitry Preobrazhensky's avatar
      [AMDGPU][MC] Corrected parsing of image opcode modifiers r128 and d16 · 4f321aef
      Dmitry Preobrazhensky authored
      See bugs 36092, 36093:
          https://bugs.llvm.org/show_bug.cgi?id=36092
          https://bugs.llvm.org/show_bug.cgi?id=36093
      
      Differential Revision: https://reviews.llvm.org/D42583
      
      Reviewers: vpykhtin, artem.tamazov, arsenm
      llvm-svn: 323651
      4f321aef
    • Pavel Labath's avatar
      Fix windows test failure caused by r323638 · e7264106
      Pavel Labath authored
      The test was failing because of an incorrect sizeof check in the name
      index parsing code. This code was meant to check that we have enough
      input to parse the fixed-size part of the dwarf header, which it did by
      comparing the input to sizeof(Header). Originally struct Header only
      contained the fixed-size part, but during review, we've moved additional
      members into it, which rendered the sizeof check invalid.
      
      I resolve this by moving the fixed-size part to a separate struct and
      updating the sizeof-expression to use that.
      
      llvm-svn: 323648
      e7264106
    • Sander de Smalen's avatar
      [AArch64][AsmParser] NFC: Generalize LogicalImm[Not](32|64) code · a1c259c2
      Sander de Smalen authored
      Summary:
      All variants of isLogicalImm[Not](32|64) can be combined into a single templated function, same for printLogicalImm(32|64).
      By making it use a template instead, further SVE patches can use it for other data types as well (e.g. 8, 16 bits).
      
      Reviewers: fhahn, rengolin, aadg, echristo, kristof.beyls, samparker
      
      Reviewed By: samparker
      
      Subscribers: aemerson, javed.absar, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D42294
      
      llvm-svn: 323646
      a1c259c2
    • Mikael Holmen's avatar
      [DebugInfo] Fix fragment offset emission order for symbol locations · a9e31537
      Mikael Holmen authored
      Summary:
      When emitting the location for a global variable with fragmented debug
      expressions, make sure that the offset pieces, which represent
      optimized-out parts of the variable, are emitted before their succeeding
      fragments' expressions. Previously, if the succeeding fragment's
      location was a symbol, the offset piece was emitted after, rather than
      before, that symbol's expression. This effectively meant that the symbols
      were associated with the wrong parts of the variable.
      
      This fixes PR36085.
      
      Patch by: David Stenberg
      
      Reviewers: aprantl, probinson, dblaikie
      
      Reviewed By: aprantl
      
      Subscribers: JDevlieghere, llvm-commits
      
      Tags: #debug-info
      
      Differential Revision: https://reviews.llvm.org/D42527
      
      llvm-svn: 323644
      a9e31537
    • Jonas Devlieghere's avatar
      [Sparc] Account for bias in stack readjustment · 865de57b
      Jonas Devlieghere authored
      Summary: This was broken long ago in D12208, which failed to account for
      the fact that 64-bit SPARC uses a stack bias of 2047, and it is the
      *unbiased* value which should be aligned, not the biased one. This was
      seen to be an issue with Rust.
      
      Patch by: jrtc27 (James Clarke)
      
      Reviewers: jyknight, venkatra
      
      Reviewed By: jyknight
      
      Subscribers: jacob_hansen, JDevlieghere, fhahn, fedor.sergeev, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D39425
      
      llvm-svn: 323643
      865de57b
    • Pavel Labath's avatar
      Fix build broken by r323641 · 3460957e
      Pavel Labath authored
      The call to ScopedPrinter::printNumber with size_t argument was
      ambiguous (I think) on 32-bit builds. Explicitly cast to a 64-bit int to
      avoid this.
      
      llvm-svn: 323642
      3460957e
    • Pavel Labath's avatar
      Refactor dwarfdump -apple-names output · 394e8056
      Pavel Labath authored
      Summary:
      This modifies the dwarfdump output to align it with the new .debug_names
      dump. It also renames two header fields to match similar fields in the
      dwarf5 header.
      
      A couple of tests needed to be updated to match new output. The changes
      were fairly straight-forward, although not really automatable.
      
      Reviewers: JDevlieghere, aprantl
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D42415
      
      llvm-svn: 323641
      394e8056
    • Sjoerd Meijer's avatar
      [ARM] FP16Pat and FullFP16Pat patterns. NFC. · 3ddb7fb6
      Sjoerd Meijer authored
      Create and use FP16Pat FullFP16Pat helper patterns to make the difference
      explicit.
      
      Differential Revision: https://reviews.llvm.org/D42634
      
      llvm-svn: 323640
      3ddb7fb6
    • Pavel Labath's avatar
      [DebugInfo] Basic .debug_names dumping support · 3c9a918c
      Pavel Labath authored
      Summary:
      This commit renames DWARFAcceleratorTable to AppleAcceleratorTable to free up
      the first name as an interface for the different accelerator tables.
      Then I add a DWARFDebugNames class for the dwarf5 table.
      
      Presently, the only common functionality of the two classes is the dump()
      method, because this is the only method that was necessary to implement
      dwarfdump -debug-names; and because the rest of the
      AppleAcceleratorTable interface does not directly transfer to the dwarf5
      tables (the main reason for that is that the present interface assumes
      the tables are homogeneous, but the dwarf5 tables can have different
      keys associated with each entry).
      
      I expect to make the common interface richer as I add more functionality
      to the new class (and invent a way to represent it in generic way).
      
      In terms of sharing the implementation, I found the format of the two
      tables sufficiently different to frustrate any attempts to have common
      parsing or dumping code, so presently the implementations share just low
      level code for formatting dwarf constants.
      
      Reviewers: vleschuk, JDevlieghere, clayborg, aprantl, probinson, echristo, dblaikie
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D42297
      
      llvm-svn: 323638
      3c9a918c
    • Andrei Elovikov's avatar
      [X86FixupBWInsts] Fix miscompilation if sibling sub-register is live. · c560a18c
      Andrei Elovikov authored
      Summary: The issues was found during D40524.
      
      Reviewers: andrew.w.kaylor, craig.topper, MatzeB
      
      Reviewed By: andrew.w.kaylor
      
      Subscribers: aivchenk, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D42533
      
      llvm-svn: 323635
      c560a18c
    • Oliver Stannard's avatar
      [AArch64] Generate the CASP instruction for 128-bit cmpxchg · a9d2e004
      Oliver Stannard authored
      The Large System Extension added an atomic compare-and-swap instruction
      that operates on a pair of 64-bit registers, which we can use to
      implement a 128-bit cmpxchg.
      
      Because i128 is not a legal type for AArch64 we have to do all of the
      instruction selection in C++, and the instruction requires even/odd
      register pairs, so we have to wrap it in REG_SEQUENCE and EXTRACT_SUBREG
      nodes. This is very similar to what we do for 64-bit cmpxchg in the ARM
      backend.
      
      Differential revision: https://reviews.llvm.org/D42104
      
      llvm-svn: 323634
      a9d2e004
    • George Rimar's avatar
      [ThinLTO] - Stop internalizing and drop non-prevailing symbols. · eaf5172c
      George Rimar authored
      Implementation marks non-prevailing symbols as not live in the summary.
      Then them are dropped in backends.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=35938
      
      Differential revision: https://reviews.llvm.org/D42107
      
      llvm-svn: 323633
      eaf5172c
    • Craig Topper's avatar
      [X86] Make foldLogicOfSetCCs work better for vectors pre legal types/operations · 62b62356
      Craig Topper authored
      Summary:
      There's a check in the code to only check getSetCCResultType after LegalOperations or if the type is MVT::i1. But the i1 check is only allowing scalar types through. I think it should check that the scalar type is MVT::i1 so that it will work for vectors.
      
      The changed test already does this combine with AVX512VL where getSetCCResultType returns vXi1. But with avx512f and no VLX getSetCCResultType returns a type matching the width of the input type.
      
      Reviewers: spatel, RKSimon
      
      Reviewed By: spatel
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D42619
      
      llvm-svn: 323631
      62b62356
    • Davide Italiano's avatar
      [CVP] Don't Replace incoming values from unreachable blocks with undef. · 8b797a0f
      Davide Italiano authored
      This pretty much reverts r322006, except that we keep the test,
      because we work around the issue exposed in a different way (a
      recursion limit in value tracking). There's still probably some
      sequence that exposes this problem, and the proper way to fix that
      for somebody who has time is outlined in the code review.
      
      llvm-svn: 323630
      8b797a0f
    • Hiroshi Inoue's avatar
      [NFC] fix trivial typos in comments and documents · c8e92458
      Hiroshi Inoue authored
      "to to" -> "to"
      
      llvm-svn: 323628
      c8e92458
  2. Jan 28, 2018
  3. Jan 27, 2018
Loading