1. Oct 07, 2018
  2. Oct 06, 2018
    • Marshall Clow's avatar
      Papers and Issues for San Diego · b9f72a5a
      Marshall Clow authored
      llvm-svn: 343923
      b9f72a5a
    • Simon Pilgrim's avatar
      [X86] combinePMULDQ - add op back to worklist if SimplifyDemandedBits succeeds on either operand · 62d199f4
      Simon Pilgrim authored
      Prevents missing other simplifications that may occur deep in the operand chain where CommitTargetLoweringOpt won't add the PMULDQ back to the worklist itself
      
      llvm-svn: 343922
      62d199f4
    • Simon Pilgrim's avatar
      [X86] Regenerate LSR loop iteration test · 944c5305
      Simon Pilgrim authored
      llvm-svn: 343921
      944c5305
    • Sanjay Patel's avatar
      [x86] add test for masked store with extra shift op; NFC · 891be5af
      Sanjay Patel authored
      llvm-svn: 343920
      891be5af
    • Simon Pilgrim's avatar
      [X86][SSE] SimplifyDemandedVectorEltsForTargetNode - simplify PSHUFB masks · 0cc0a24b
      Simon Pilgrim authored
      Attempt to simplify PSHUFB masks (even non-constant ones) - we should probably be able to simplify other variable shuffles as well as the need arises.
      
      llvm-svn: 343919
      0cc0a24b
    • Simon Pilgrim's avatar
      [X86] Use the SimplifyDemandedBits wrappers where possible. NFCI. · ae78d709
      Simon Pilgrim authored
      Leave the wrapper to handle TargetLowering::TargetLoweringOpt and CommitTargetLoweringOpt.
      
      llvm-svn: 343918
      ae78d709
    • Simon Pilgrim's avatar
      Revert rL343916: Fix -Wmissing-braces warning. NFCI. · b616b809
      Simon Pilgrim authored
      llvm-svn: 343917
      b616b809
    • Simon Pilgrim's avatar
      Fix -Wmissing-braces warning. NFCI. · 2a6bfa0c
      Simon Pilgrim authored
      llvm-svn: 343916
      2a6bfa0c
    • Simon Pilgrim's avatar
      Wdocumentation fix · 96742556
      Simon Pilgrim authored
      llvm-svn: 343915
      96742556
    • Simon Pilgrim's avatar
      Wdocumentation fix · 3773dc37
      Simon Pilgrim authored
      llvm-svn: 343914
      3773dc37
    • Simon Pilgrim's avatar
      [SelectionDAG] Add SimplifyDemandedBits to SimplifyDemandedVectorElts simplification · 9c9c97bc
      Simon Pilgrim authored
      This patch enables SimplifyDemandedBits to call SimplifyDemandedVectorElts in cases where the demanded bits mask covers entire elements of a bitcasted source vector.
      
      There are a couple of cases here where simplification at a deeper level (such as through bitcasts) prevents further simplification - CommitTargetLoweringOpt only adds immediate uses/users back to the worklist when we might want to combine the original caller again to see what else it can simplify.
      
      As well as that I had to disable handling of bool vector until SimplifyDemandedVectorElts better supports some of their opcodes (SETCC, shifts etc.).
      
      Fixes PR39178
      
      Differential Revision: https://reviews.llvm.org/D52935
      
      llvm-svn: 343913
      9c9c97bc
    • Fangrui Song's avatar
      [clangd] Remove unused headers from CodeComplete.cpp · 39f7b396
      Fangrui Song authored
      queue is not used after index-provided completions' merge with those from Sema
      USRGeneration.h is not used after introduction of getSymbolID
      
      llvm-svn: 343912
      39f7b396
    • Alex Bradbury's avatar
      [RISCV] Compress addiw rd, x0, simm6 to c.li rd, simm6 · 639df9e4
      Alex Bradbury authored
      A pattern was present for addi rd, x0, simm6 but not addiw which is
      semantically identical when the source register is x0. This patch addresses
      that, and the benefit can be seen in rv64c-aliases-valid.s.
      
      llvm-svn: 343911
      639df9e4
    • Tom Stellard's avatar
      AMDGPU: Consolidate SMRD TableGen patterns · 251ee083
      Tom Stellard authored
      Summary:
      Merge the SMRD patterns for CI into the same multiclass as the
      patterns for other sub-targets.
      
      This removes some duplicate code and will make it easier for some
      future GlobalISel changes I would like to do.
      
      Reviewers: arsenm
      
      Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52557
      
      llvm-svn: 343909
      251ee083
    • Aaron Puchert's avatar
      Thread safety analysis: Handle conditional expression in getTrylockCallExpr · b0a2a0cf
      Aaron Puchert authored
      Summary:
      We unwrap conditional expressions containing try-lock functions.
      
      Additionally we don't acquire on conditional expression branches, since
      that is usually not helpful. When joining the branches we would almost
      certainly get a warning then.
      
      Hopefully fixes an issue that was raised in D52398.
      
      Reviewers: aaron.ballman, delesley, hokein
      
      Reviewed By: aaron.ballman
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D52888
      
      llvm-svn: 343902
      b0a2a0cf
    • Jordan Rupprecht's avatar
      [llvm-ar] Use POSIX-specified timestamps for 'tv'. · 34c0e470
      Jordan Rupprecht authored
      Summary:
      The POSIX spec says:
      
      ```
      If the −t option is used with the −v option, the standard output format shall be:
      "%s %u/%u %u %s %d %d:%d %d %s\n", <member mode>, <user ID>,
      <group ID>, <number of bytes in member>,
      <abbreviated month>, <day-of-month>, <hour>,
      <minute>, <year>, <file>
      
      where:
      
      ...
      <abbreviated month>
      Equivalent to the format of the %b conversion specification format in date.
      <day-of-month>
      Equivalent to the format of the %e conversion specification format in date.
      <hour> Equivalent to the format of the %H conversion specification format in date.
      <minute> Equivalent to the format of the %M conversion specification format in date.
      <year> Equivalent to the format of the %Y conversion specification format in date.
      ```
      
      This actually used to be the format printed by llvm-ar. It was apparently accidentally changed (see r207385 followed by comments in r207387). This makes it conform to GNU ar for easier replacement.
      
      Reviewers: MaskRay
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52940
      
      llvm-svn: 343901
      34c0e470
    • Vedant Kumar's avatar
      Add support for artificial tail call frames · 4b36f791
      Vedant Kumar authored
      This patch teaches lldb to detect when there are missing frames in a
      backtrace due to a sequence of tail calls, and to fill in the backtrace
      with artificial tail call frames when this happens. This is only done
      when the execution history can be determined from the call graph and
      from the return PC addresses of calls on the stack. Ambiguous sequences
      of tail calls (e.g anything involving tail calls and recursion) are
      detected and ignored.
      
      Depends on D49887.
      
      Differential Revision: https://reviews.llvm.org/D50478
      
      llvm-svn: 343900
      4b36f791
    • Vedant Kumar's avatar
      Relax a data formatter test · 9d9c9655
      Vedant Kumar authored
      Before inspecting the contents of a list, make sure that we've stepped
      past the push_back() that inserts the element we're interested in.
      
      llvm-svn: 343899
      9d9c9655
    • Fedor Sergeev's avatar
      [New PM][PassTiming] implement -time-passes for the new pass manager · 884e52a7
      Fedor Sergeev authored
      Enable time-passes functionality through PassInstrumentation callbacks
      for passes and analyses.
      
      TimePassesHandler class keeps all the callbacks, the timing data as it
      is being collected as well as the stack of currently active timers.
      
      Parts of the fix that might be somewhat unobvious:
        - mapping of passes into Timer (TimingData) can not be done per-instance.
          PassID name provided into the callback is common for all the pass invocations.
          Thus the only way to get a timing with reasonable granularity is to collect
          timing data per pass invocation, getting a new timer for each BeforePass.
          Hence the key for TimingData uses a pair of <StringRef/unsigned count> to
          uniquely identify a pass invocation.
      
        - consequently, this new-pass-manager implementation performs no aggregation
          of timing data, reporting timings for each pass invocation separately.
          In that it differs from legacy-pass-manager time-passes implementation that
          reports timing data aggregated per pass instance.
      
        - pass managers and adaptors are not tracked, similar to how pass managers are
          not tracked in legacy time-passes.
      
        - TimerStack tracks timers that are active, each BeforePass pushes the new timer
          on stack, each AfterPass pops active timer from stack and stops it.
      
      Reviewers: chandlerc, philip.pfaffe
      Differential Revision: https://reviews.llvm.org/D51276
      
      llvm-svn: 343898
      884e52a7
    • Joel Jones's avatar
      [AArch64] -mcpu=native CPU detection for Cavium processors · 0a6c000c
      Joel Jones authored
      This small patch updates the CPU detection for Cavium processors when
      -mcpu=native is passed on compile-line.
      
      Patch by Stefan Teleman
      Differential Revision: https://reviews.llvm.org/D51939
      
      llvm-svn: 343897
      0a6c000c
    • Petr Hosek's avatar
      [llvm-nm] Update all tests to redirect stderr to stdout · 227f2542
      Petr Hosek authored
      This addresses the breakage introduced in r343887.
      
      llvm-svn: 343896
      227f2542
    • Matthias Braun's avatar
      X86, AArch64, ARM: Do not attach debug location to spill/reload instructions · 81578e9f
      Matthias Braun authored
      This rebases and recommits r343520. hwasan should be fixed now and this
      shouldn't break the tests anymore.
      
      Spill/reload instructions are artificially generated by the compiler and
      have no relation to the original source code. So the best thing to do is
      not attach any debug location to them (instead of just taking the next
      debug location we find on following instructions).
      
      Differential Revision: https://reviews.llvm.org/D52125
      
      llvm-svn: 343895
      81578e9f
    • Mandeep Singh Grang's avatar
      [COFF, ARM64] Add _InterlockedAdd intrinsic · df792967
      Mandeep Singh Grang authored
      Reviewers: rnk, mstorsjo, compnerd, TomTan, haripul, javed.absar, efriedma
      
      Reviewed By: efriedma
      
      Subscribers: efriedma, kristof.beyls, chrib, jfb, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D52811
      
      llvm-svn: 343894
      df792967
    • Vedant Kumar's avatar
      Specify -mtriple=x86_64 in an X86-specific dwarf test · 0fea2f5c
      Vedant Kumar authored
      On the PPC bot, the %llc_dwarf substitution does not contain an -mtriple
      argument. This can cause the wrong backend to be exercised.
      
      This causes issues because the backends differ in when they decide to
      emit tail calls:
      
        http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/12440
      
      This is mostly a speculative fix as I don't have a PPC machine to test
      with.
      
      llvm-svn: 343893
      0fea2f5c
    • James Y Knight's avatar
      Emit CK_NoOp casts in C mode, not just C++. · 49bf370a
      James Y Knight authored
      Previously, it had been using CK_BitCast even for casts that only
      change const/restrict/volatile. Now it will use CK_Noop where
      appropriate.
      
      This is an alternate solution to r336746.
      
      Differential Revision: https://reviews.llvm.org/D52918
      
      llvm-svn: 343892
      49bf370a
    • Simon Pilgrim's avatar
      [X86][AVX] Limit getFauxShuffleMask INSERT_SUBVECTOR support to 2 inputs · dc97118e
      Simon Pilgrim authored
      rL343853 didn't limit the number of subinputs, but we don't currently support faux shuffles with more than 2 total inputs, so put a limiter in place until this is fixed.
      
      Found by Artem Dergachev.
      
      llvm-svn: 343891
      dc97118e
    • Vedant Kumar's avatar
      [LiveDebugValues] Extend var ranges through artificial blocks · 8c46668b
      Vedant Kumar authored
      ASan often introduces basic blocks consisting exclusively of
      instructions without debug locations, or with line 0 debug locations.
      
      LiveDebugValues needs to extend variable ranges through these artificial
      blocks. Otherwise, a lot of variables disappear -- even at -O0.
      
      Typically, LiveDebugValues does not extend a variable's range into a
      block unless the block is essentially "part of" the variable's scope
      (for a precise definition, see LexicalScopes::dominates). This patch
      relaxes the lexical dominance check for artificial blocks.
      
      This makes the following Swift program debuggable at -O0:
      ```
        1| var x = 100
        2| print("x = \(x)")
      ```
      
      rdar://39127144
      
      Differential Revision: https://reviews.llvm.org/D52921
      
      llvm-svn: 343890
      8c46668b