1. Apr 13, 2022
    • Martin Sebor's avatar
      [InstCombine] Add more memrchr tests (NFC). · deadda74
      Martin Sebor authored
      deadda74
    • Jonathan Peyton's avatar
      [OpenMP][libomp] Replace global variable references with local object · d49ce7c3
      Jonathan Peyton authored
      Remove references to global __kmp_topology within a kmp_topology_t
      object method. There should just be implicit references to the
      private object.
      d49ce7c3
    • Arthur Eubanks's avatar
      [docs] Mention that we are in the process of removing the legacy PM for the optimization pipeline · 9faab435
      Arthur Eubanks authored
      And remove references to flags to turn it off.
      
      Reviewed By: nikic, MaskRay
      
      Differential Revision: https://reviews.llvm.org/D123547
      9faab435
    • Louis Dionne's avatar
      [libc++] Define legacy symbols for inline functions at a finer-grained level · 0cc34ca7
      Louis Dionne authored
      When we build the library with the stable ABI, we need to include some
      functions in the dylib that were made inline in later versions of the
      library (to avoid breaking code that might be relying on those symbols).
      
      However, those methods were made non-inline whenever we'd be building
      the library, which means that all translation units would end up using
      the old out-of-line definition of these methods, as opposed to the new
      inlined version. This patch makes it so that only the translation units
      that actually define the out-of-line methods use the old definition,
      opening up potential optimization opportunities in other translation
      units.
      
      This should solve some of the issues encountered in D65667.
      
      Differential Revision: https://reviews.llvm.org/D123519
      0cc34ca7
    • Ahmed Bougacha's avatar
      [AArch64][LOH] Don't ignore regmasks in bundles by iterating over instrs. · cfa4fe7c
      Ahmed Bougacha authored
      The LOH pass iterates over instructions to build its custom register
      state machine, but it uses the top-level bundle iterator.
      This should be okay, because when the wrapper BUNDLE MI is built,
      it aggregates the register defs/uses in its instructions into MOs.
      
      However, that doesn't apply to regmasks, and accumulating regmasks
      across multiple instructions would be messy business.
      There are a couple AnalyzePhysRegInBundle (/Virt) helpers that
      do look at regmasks, but those don't fit in very well here.
      
      AArch64 has started to use a few bundle instructions, specifically
      as glorified pseudos for variant call instructions, which have regmasks.
      So the LOH pass ends up ignoring regmasks.
      
      Concretely, this has been wrong for a while, but, on aarch64, the
      most common bundle (rv_marker call) was always followed by the
      attached call instruction, a plain BL with a regmask.  Which
      was properly detected by the pass.
      
      However, we recently started keeping the attached call in the bundle,
      so the regmask is now ignored.  And the pass happily combines ADRPs, of
      say, x8, across the bundle, resulting in corrupt pointers later.
      cfa4fe7c
    • Ahmed Bougacha's avatar
      [AArch64] Cleanup call-rv-marker.ll test. NFC. · f3e76dca
      Ahmed Bougacha authored
      This was doing -iphoneos instead of -ios. While there,
      remove an old TODO and cleanup some alignment.
      f3e76dca
    • Harald van Dijk's avatar
      [X86] Fix handling of maskmovdqu in x32 differently · 3337f506
      Harald van Dijk authored
      This reverts the functional changes of D103427 but keeps its tests, and
      and reimplements the functionality by reusing the existing 32-bit
      MASKMOVDQU and VMASKMOVDQU instructions as suggested by skan in review.
      These instructions were previously predicated on Not64BitMode. This
      reimplementation restores the disassembly of a class of instructions,
      which will see a test added in followup patch D122449.
      
      These instructions are in 64-bit mode special cased in
      X86MCInstLower::Lower, because we use flags with one meaning for subtly
      different things: we have an AdSize32 class which indicates both that
      the instruction needs a 0x67 prefix and that the text form of the
      instruction implies a 0x67 prefix. These instructions are special in
      needing a 0x67 prefix but having a text form that does *not* imply a
      0x67 prefix, so we encode this in MCInst as an instruction that has an
      explicit address size override.
      
      Note that originally VMASKMOVDQU64 was special cased to be excluded from
      disassembly, as we cannot distinguish between VMASKMOVDQU and
      VMASKMOVDQU64 and rely on the fact that these are indistinguishable, or
      close enough to it, at the MCInst level that it does not matter which we
      use. Because VMASKMOVDQU now receives special casing, even though it
      does not make a difference in the current implementation, as a
      precaution VMASKMOVDQU is excluded from disassembly rather than
      VMASKMOVDQU64.
      
      Reviewed By: RKSimon, skan
      
      Differential Revision: https://reviews.llvm.org/D122540
      3337f506
    • Groverkss's avatar
      [MLIR][Presburger] Remove inheritance from PresburgerSpace in IntegerRelation,... · 20aedb14
      Groverkss authored
      [MLIR][Presburger] Remove inheritance from PresburgerSpace in IntegerRelation, PresburgerRelation and PWMAFunction
      
      This patch removes inheritence from PresburgerSpace in IntegerRelation and
      instead makes it a member of these classes.
      
      This is required for three reasons:
        - It prevents implicit casting to PresburgerSpace.
        - Not all functions of PresburgerSpace need to be exposed by the deriving classes.
        - IntegerRelation and IntegerPolyhedron are defined in a PresburgerSpace. It
          makes more sense for the space to be a member instead of them inheriting from
          a space.
      
      Reviewed By: arjunp, ftynse
      
      Differential Revision: https://reviews.llvm.org/D123585
      20aedb14
    • Zixu Wang's avatar
      [clang][ExtractAPI][NFC] Fix sed delimiter in test · e08c4354
      Zixu Wang authored
      Fix path replacement in sed (properly this time) using lit
      regex_replacement.
      
      Differential Revision: https://reviews.llvm.org/D123526
      
      
      
      Co-authored-by: default avatarMichele Scandale <michele.scandale@gmail.com>
      Co-authored-by: default avatarZixu Wang <9819235+zixu-w@users.noreply.github.com>
      e08c4354
    • Shao-Ce SUN's avatar
      [NFC][CodeGen] Use ArrayRef in TargetLowering functions · e90110e6
      Shao-Ce SUN authored
      This patch is similar to D122557, adding an `ArrayRef` version for `setOperationAction`, `setLoadExtAction`, `setCondCodeAction`, `setLibcallName`.
      
      Reviewed By: craig.topper
      
      Differential Revision: https://reviews.llvm.org/D123467
      e90110e6
    • Anshil Gandhi's avatar
      [AMDGPU][Codegen] Unsupported image sample texture map instructions · 528aa090
      Anshil Gandhi authored
      Disables image_sample_*_g16 instructions on architectures lacking g16 support. This patch fixes the issue 54672.
      
      Differential Revision: https://reviews.llvm.org/D123461
      528aa090
    • Sanjay Patel's avatar
      [SimplifyCFG] cleanup code for converting switch to select (NFC) · d9211be1
      Sanjay Patel authored
      This renames functions for more general usage (and current capitalization style)
      before a proposed logic change in D122485.
      
      Differential Revision: https://reviews.llvm.org/D123614
      d9211be1
    • Jonathan Peyton's avatar
      [OpenMP][libomp] Fix some Doxygen issues · 747a4906
      Jonathan Peyton authored
      Fix spelling of variable names and remove accidental references (#)
      in Doxygen comments.
      747a4906
  2. Apr 12, 2022