1. Dec 16, 2020
  2. Dec 15, 2020
    • David Green's avatar
      [ARM] Match dual lane vmovs from insert_vector_elt · 6cc3d80a
      David Green authored
      MVE has a dual lane vector move instruction, capable of moving two
      general purpose registers into lanes of a vector register. They look
      like one of:
        vmov q0[2], q0[0], r2, r0
        vmov q0[3], q0[1], r3, r1
      They only accept these lane indices though (and only insert into an
      i32), either moving lanes 1 and 3, or 0 and 2.
      
      This patch adds some tablegen patterns for them, selecting from vector
      inserts elements. Because the insert_elements are know to be
      canonicalized to ascending order there are several patterns that we need
      to select. These lane indices are:
      
      3 2 1 0    -> vmovqrr 31; vmovqrr 20
      3 2 1      -> vmovqrr 31; vmov 2
      3 1        -> vmovqrr 31
      2 1 0      -> vmovqrr 20; vmov 1
      2 0        -> vmovqrr 20
      
      With the top one being the most common. All other potential patterns of
      lane indices will be matched by a combination of these and the
      individual vmov pattern already present. This does mean that we are
      selecting several machine instructions at once due to the need to
      re-arrange the inserts, but in this case there is nothing else that will
      attempt to match an insert_vector_elt node.
      
      Differential Revision: https://reviews.llvm.org/D92553
      6cc3d80a
    • Quentin Chateau's avatar
      [clangd] Improve goToDefinition on auto and dectype · bda7d0af
      Quentin Chateau authored
      locateSymbolAt (used in goToDeclaration) follows the
      deduced type instead of failing to locate the declaration.
      
      Reviewed By: sammccall
      
      Differential Revision: https://reviews.llvm.org/D92977
      bda7d0af
    • Ulrich Weigand's avatar
      [SystemZ] Remove most hard-coded R1D instances for sibcalls · ebef9216
      Ulrich Weigand authored
      Indirect sibling calls need to use %r1 to hold the target address.
      This is currently hard-coded in many places.  This is not only
      unnecessary, but makes future changes in this area difficult.
      
      This patch now encodes the target address as operand without
      hard coding a register in most places throughout the MI back-end.
      Code generation still always uses %r1, but this is now decided
      solely in one place in SystemZTargetLowering::LowerCall.
      
      NFC intended.
      ebef9216
    • Mircea Trofin's avatar
      [utils] Fix UpdateTestChecks case where 2 runs differ for last label · e2dc306b
      Mircea Trofin authored
      Two RUN lines produce outputs that, each, have some common parts and
      some different parts. The common parts are checked under label A. The
      differing parts are associated to a function and checked under labels B
      and C, respectivelly.
      When build_function_body_dictionary is called for the first RUN line, it
      will attribute the function body to labels A and C. When the second RUN
      is passed to build_function_body_dictionary, it sees that the function
      body under A is different from what it has. If in this second RUN line,
      A were at the end of the prefixes list, A's body is still kept
      associated with the first run's function.
      
      When we output the function body (i.e. add_checks), we stop after
      emitting for the first prefix matching that function. So we end up with
      the wrong function body (first RUN's A-association).
      
      There is no reason to special-case the last label in the prefixes list,
      and the fix is to always clear a label association if we fin...
      e2dc306b
    • Raphael Isemann's avatar
      [lldb] Fix import-std-module tests after libc++ got a new __memory subdirectory · 2b09deda
      Raphael Isemann authored
      7ad49aec added a __memory subdirectory to libc++
      but the code we use to find libc++ from the debug info support files wasn't
      prepared to encounter unknown subdirectories within libc++. The import-std-module
      tests automatically fell back to not importing the std module which caused
      them to fail.
      
      This patch removes our hardcoded exception for the 'experimental' subdirectory
      and instead just ignores all subdirectories of c++/vX/ when searching the
      support files.
      2b09deda
    • Florian Hahn's avatar
      [AnnotationRemarks] Also generate annotation remarks when using -O0. · 7ea3932a
      Florian Hahn authored
      The AnnotationRemarks pass is already run at the end of the module
      pipeline. This patch also adds it before bailing out for -O0, so remarks
      are also generated with -O0.
      7ea3932a
    • Kazushi (Jam) Marukawa's avatar
      [VE] Support FRAMEADDR · 69722655
      Kazushi (Jam) Marukawa authored
      Implement FRAMEADDR for VE.  Add a regression test also.
      
      Reviewed By: simoll
      
      Differential Revision: https://reviews.llvm.org/D93295
      69722655
    • Kazushi (Jam) Marukawa's avatar
      [VE][NFC] Sort VEISD operations · 2a2268a6
      Kazushi (Jam) Marukawa authored
      Reviewed By: simoll
      
      Differential Revision: https://reviews.llvm.org/D93294
      2a2268a6
    • Florian Hahn's avatar
      [VPlan] Use VPDef for VPWidenSelectRecipe. · 7186a396
      Florian Hahn authored
      This patch turns updates VPWidenSelectRecipe to manage the value
      it defines using VPDef.
      
      Reviewed By: gilr
      
      Differential Revision: https://reviews.llvm.org/D90560
      7186a396
    • Sebastian Neubauer's avatar
      [AMDGPU] Unify flat offset logic · 91445979
      Sebastian Neubauer authored
      Move getNumFlatOffsetBits from AMDGPUAsmParser and SIInstrInfo into
      AMDGPUBaseInfo.
      
      Differential Revision: https://reviews.llvm.org/D93287
      91445979
    • Sebastian Neubauer's avatar
      7898803c
    • Hansang Bae's avatar
      [OpenMP] Initialize runtime in the forked child process · 171ca93c
      Hansang Bae authored
      This patch enables serial initialization in the forked child process
      to fix unstable runtime behavior when used with Python-based AI tools.
      
      Differential Revision: https://reviews.llvm.org/D93230
      171ca93c
    • Sam McCall's avatar
      [clangd] Oops, fix code in #ifdef WIN32 · 5186eda3
      Sam McCall authored
      5186eda3