Skip to content
  1. Nov 14, 2016
    • Sean Fertile's avatar
      [PPC] Add intrinsic mapping to the xscvhpsp instruction · a435e07d
      Sean Fertile authored
      add an intrinsic to expose the 'VSX Scalar Convert Half-Precision to
      Single-Precision' instruction.
      
      Differential review: https://reviews.llvm.org/D26536
      
      llvm-svn: 286862
      a435e07d
    • Adam Nemet's avatar
      [opt-viewer] Don't fail with remarks without debug location · 544220fc
      Adam Nemet authored
      llvm-svn: 286861
      544220fc
    • Changpeng Fang's avatar
      AMDGPU/SI: Support data types other than V4f32 in image intrinsics · 8236fe10
      Changpeng Fang authored
      Summary:
        Extend image intrinsics to support data types of V1F32 and V2F32.
      
        TODO: we should define a mapping table to change the opcode for data type of V2F32 but just one channel is active,
        even though such case should be very rare.
      
      Reviewers:
        tstellarAMD
      
      Differential Revision:
        http://reviews.llvm.org/D26472
      
      llvm-svn: 286860
      8236fe10
    • Zvi Rackover's avatar
      [X86] Adding reproducer for pr30981 · 35bb7fda
      Zvi Rackover authored
      llvm-svn: 286855
      35bb7fda
    • Zachary Turner's avatar
      [PDB] Add documentation for the DBI Stream. · c316ddcd
      Zachary Turner authored
      Differential Revision: https://reviews.llvm.org/D26552
      
      llvm-svn: 286853
      c316ddcd
    • Zachary Turner's avatar
      32e1edec
    • Bob Wilson's avatar
      Use _Unwind_Backtrace on Apple platforms. · d7bef697
      Bob Wilson authored
      Darwin's backtrace() function does not work with sigaltstack (which was
      enabled when available with r270395) — it does a sanity check to make
      sure that the current frame pointer is within the expected stack area
      (which it is not when using an alternate stack) and gives up otherwise.
      The alternative of _Unwind_Backtrace seems to work fine on macOS, so use
      that when backtrace() fails. Note that we then use backtrace_symbols_fd()
      with the addresses from _Unwind_Backtrace, but I’ve tested that and it
      also seems to work fine. rdar://problem/28646552
      
      llvm-svn: 286851
      d7bef697
    • Adrian Prantl's avatar
      Typo · 1f9ac96c
      Adrian Prantl authored
      llvm-svn: 286845
      1f9ac96c
    • Teresa Johnson's avatar
      Restore "[ThinLTO] Prevent exporting of locals used/defined in module level asm" · 3624bdf6
      Teresa Johnson authored
      This restores the rest of r286297 (part was restored in r286475).
      Specifically, it restores the part requiring adding a dependency from
      the Analysis to Object library (downstream use changed to correctly
      model split BitReader vs BitWriter libraries).
      
      Original description of this part of patch follows:
      
      Module level asm may also contain defs of values. We need to prevent
      export of any refs to local values defined in module level asm (e.g. a
      ref in normal IR), since that also requires renaming/promotion of the
      local. To do that, the summary index builder looks at all values in the
      module level asm string that are not marked Weak or Global, which is
      exactly the set of locals that are defined. A summary is created for
      each of these local defs and flagged as NoRename.
      
      This required adding handling to the BitcodeWriter to look at GV
      declarations to see if they have a summary (rather than skipping them
      all).
      
      Finally, added an assert to IRObjectFile::CollectAsmUndefinedRefs to
      ensure that an MCAsmParser is available, otherwise the module asm parse
      would silently fail. Initialized the asm parser in the opt tool for use
      in testing this fix.
      
      Fixes PR30610.
      
      llvm-svn: 286844
      3624bdf6
    • Sumanth Gundapaneni's avatar
      [Hexagon] Remove unsafe load instructions that affect Stack Slot Coloring · d428cf8b
      Sumanth Gundapaneni authored
      The Stack slot coloring pass removes a store that is followed by a load
      that deal with the same stack slot. The function isLoadFromStackSlot
      is supposed to consider the loads that have no side-effects. This
      patch fixed the issue by removing the unsafe loads from this function
      Eg:
      %vreg0<def> = L2_loadruh_io <fi#15>, 0
      S2_storeri_io <fi#15>, 0, %vreg0
      
      In this case, we load an unsigned extended half word and store this in to
      the same stack slot. The Stack slot coloring pass considers safe to remove
      the store. This patch marked all the non-vector byte and half word loads as
      unsafe.
      
      llvm-svn: 286843
      d428cf8b
    • Stephan Bergmann's avatar
      Handle non-inlined clang::Type::getAs specializations in extract_symbols.py · 06c31f60
      Stephan Bergmann authored
      The existing logic was to discard any symbols representing function template
      instantiations, as the definitions were assumed to be inline. But there are
      three explicit specializations of clang::Type::getAs that are only defined in
      Clang's lib/AST/Type.cpp, and at least the plugin used by the LibreOffice build
      (https://wiki.documentfoundation.org/Development/Clang_plugins) uses those
      functions.
      
      Differential Revision: https://reviews.llvm.org/D26455
      
      llvm-svn: 286841
      06c31f60
    • Teresa Johnson's avatar
      [ThinLTO] Make inline assembly handling more efficient in summary · d5033a45
      Teresa Johnson authored
      Summary:
      The change in r285513 to prevent exporting of locals used in
      inline asm added all locals in the llvm.used set to the reference
      set of functions containing inline asm. Since these locals were marked
      NoRename, this automatically prevented importing of the function.
      
      Unfortunately, this caused an explosion in the summary reference lists
      in some cases. In my particular example, it happened for a large protocol
      buffer generated C++ file, where many of the generated functions
      contained an inline asm call. It was exacerbated when doing a ThinLTO
      PGO instrumentation build, where the PGO instrumentation included
      thousands of private __profd_* values that were added to llvm.used.
      
      We really only need to include a single llvm.used local (NoRename) value
      in the reference list of a function containing inline asm to block it
      being imported. However, it seems cleaner to add a flag to the summary
      that explicitly describes this situation, which is what this patch does.
      
      Reviewers: mehdi_amini
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26402
      
      llvm-svn: 286840
      d5033a45
    • Simon Pilgrim's avatar
      [CostModel][X86] Added mul costs for vXi8 vectors · 779da8e5
      Simon Pilgrim authored
      More realistic v16i8/v32i8/v64i8 MUL costs - we have to extend to vXi16, use PMULLW and then truncate the result
      
      llvm-svn: 286838
      779da8e5
    • Simon Pilgrim's avatar
      [X86][AVX] Fixed v16i16/v32i8 ADD/SUB costs on AVX1 subtargets · 27fed8e5
      Simon Pilgrim authored
      Add explicit v16i16/v32i8 ADD/SUB costs, matching the costs of v4i64/v8i32 - they were missing for some reason.
      
      This has side effects on the LV max bandwidth tests (AVX1 now prefers 128-bit vectors vs AVX2 which still prefers 256-bit)
      
      llvm-svn: 286832
      27fed8e5
    • Sean Fertile's avatar
      adda5b2d
    • Aaron Ballman's avatar
      Reverting r285406, which was a temporary workaround to get one of the... · c78f5d41
      Aaron Ballman authored
      Reverting r285406, which was a temporary workaround to get one of the documentation bots upgraded to something newer than GCC 4.7. This restores the check for GCC 4.8.
      
      llvm-svn: 286822
      c78f5d41
    • Renato Golin's avatar
      Revert "llvm-strings: support printing the filename" · 199b6b94
      Renato Golin authored
      Also,
      
      Revert "test: remove the archive before modifying it"
      Revert "test: explicitly use gnu format"
      
      This reverts commits r286778, r286729 and r286767, as they are randomly failing
      on many bots (AArch64, x86_64).
      
      llvm-svn: 286820
      199b6b94
    • Simon Pilgrim's avatar
      Remove redundant condition (PR28352) NFCI. · 475b40da
      Simon Pilgrim authored
      We were already testing is the op was not a leaf, so need to then test if it was a leaf (added it to the assert instead).
      
      llvm-svn: 286817
      475b40da
    • James Molloy's avatar
      [InlineCost] Remove skew when calculating call costs · 6df8f27c
      James Molloy authored
      When calculating the cost of a call instruction we were applying a heuristic penalty as well as the cost of the instruction itself.
      
      However, when calculating the benefit from inlining we weren't discounting the equivalent penalty for the call instruction that would be removed! This caused skew in the calculation and meant we wouldn't inline in the following, trivial case:
      
        int g() {
          h();
        }
        int f() {
          g();
        }
      
      llvm-svn: 286814
      6df8f27c
    • Simon Pilgrim's avatar
      Remove redundant condition (PR28800) NFCI. · 3d8482a8
      Simon Pilgrim authored
      'A || (!A && B)' is equivalent to 'A || B':
      
      (LoopCycle > DefCycle) || (LoopCycle <= DefCycle && LoopStage <= DefStage)
      -->
      (LoopCycle > DefCycle) || (LoopStage <= DefStage)
      
      llvm-svn: 286811
      3d8482a8
    • Diana Picus's avatar
      GlobalISel: Fix indentation. NFC · bda72761
      Diana Picus authored
      llvm-svn: 286808
      bda72761
    • Pablo Barrio's avatar
      [JumpThreading] Prevent non-deterministic use lists · 7ce2c5ec
      Pablo Barrio authored
      Summary:
      Unfolding selects was previously done with the help of a vector
      of pointers that was then sorted to be able to remove duplicates.
      As this sorting depends on the memory addresses, it was
      non-deterministic. A SetVector is used now so that duplicates are
      removed without the need of sorting first.
      
      Reviewers: mgrang, efriedma
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26450
      
      llvm-svn: 286807
      7ce2c5ec
    • Diana Picus's avatar
      GlobalISel: Fix typos. NFC · a92d49da
      Diana Picus authored
      llvm-svn: 286806
      a92d49da
    • Eric Fiselier's avatar
      Add explicit (void) cast to unused unique_ptr::release() results · c79c9d85
      Eric Fiselier authored
      Summary:
      This patch adds explicit `(void)` casts to discarded `release()` calls to suppress -Wunused-result.
      
      This patch fixes *all* warnings are generated as a result of [applying `[[nodiscard]]`  within libc++](https://reviews.llvm.org/D26596).
      Similar fixes were applied to Clang in r286796.
      
      Reviewers: chandlerc, dberris
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26598
      
      llvm-svn: 286797
      c79c9d85
    • Saleem Abdulrasool's avatar
      Demangle: only demangle mangled symbols · d6da74f2
      Saleem Abdulrasool authored
      Only attempt to demangle symbols which have the itanium C++ prefix of `_Z`.
      This ensures that we do not treat any symbol name as a managled named.  We would
      previously treat a C function `f` as a mangled name and decode that to `float`
      incorrectly.
      
      While it is easy to add tests for this, Mehdi recommended against introducing
      tests for the demangler as libc++abi should cover the testing.
      
      llvm-svn: 286795
      d6da74f2
    • Craig Topper's avatar
      [AVX-512] Add suffixless aliases for EVEX encoded... · 8f85ad17
      Craig Topper authored
      [AVX-512] Add suffixless aliases for EVEX encoded vcvtsi2ss/vcvtsi2sd/vcvtusi2ss/vcvtusi2sd. This matches the VEX behavior.
      
      Fixes another problem from PR28850.
      
      llvm-svn: 286790
      8f85ad17
    • Craig Topper's avatar
      [X86] Cleanup 'x' and 'y' mnemonic suffixes for vcvtpd2dq/vcvttpd2dq/vcvtpd2ps... · b8596e4d
      Craig Topper authored
      [X86] Cleanup 'x' and 'y' mnemonic suffixes for vcvtpd2dq/vcvttpd2dq/vcvtpd2ps and similar instructions.
      
      -Don't print the 'x' suffix for the 128-bit reg/mem VEX encoded instructions in Intel syntax. This is consistent with the EVEX versions.
      -Don't print the 'y' suffix for the 256-bit reg/reg VEX encoded instructions in Intel or AT&T syntax. This is consistent with the EVEX versions.
      -Allow the 'x' and 'y' suffixes to be used for the reg/mem forms when we're assembling using Intel syntax.
      -Allow the 'x' and 'y' suffixes on the reg/reg EVEX encoded instructions in Intel or AT&T syntax. This is consistent with what VEX was already allowing.
      
      This should fix at least some of PR28850.
      
      llvm-svn: 286787
      b8596e4d
    • Craig Topper's avatar
      [AVX-512] Remove and autoupgrade masked dword/qword variable shift intrinsics... · 353e59b6
      Craig Topper authored
      [AVX-512] Remove and autoupgrade masked dword/qword variable shift intrinsics to the new unmasked versions and selects.
      
      llvm-svn: 286786
      353e59b6
    • Sanjoy Das's avatar
      [LangRef] Drop misleading anecdote · dbc58d00
      Sanjoy Das authored
      `shl nsw i8 1, i8 8` is poison, but `mul i8 1, i8 128` is not.
      
      This was discussed previously here:
      http://lists.llvm.org/pipermail/llvm-dev/2015-April/084195.html.  From
      the discussion, it was not clear which semantics we want for `shl`, but
      for now at least make the language reference more accurate.
      
      llvm-svn: 286785
      dbc58d00
  2. Nov 13, 2016
Loading