Skip to content
  1. Oct 06, 2021
    • Lang Hames's avatar
      [JITLink][MachO][arm64] Make testcase less brittle. · 2167bc1b
      Lang Hames authored
      The operand value is sign extended, so the test broke when sections were
      re-ordered. The new test should be robust to reorderings.
      2167bc1b
    • Mehdi Amini's avatar
      Stop stripping the `std.` prefix when printing operations in a region with a... · 00b7d951
      Mehdi Amini authored
      Stop stripping the `std.` prefix when printing operations in a region with a defined default dialect
      
      This fixes round-trip / ambiguity when an operation in the standard dialect would
      have the same name as an operation in the default dialect.
      
      Differential Revision: https://reviews.llvm.org/D111204
      00b7d951
    • Philip Reames's avatar
      d60bfa6f
    • Philip Reames's avatar
      e64ed3c8
    • kpyzhov's avatar
      [AMDGPU] Correction to 095c48fd. · 7e390dfe
      kpyzhov authored
      Differential Revision: https://reviews.llvm.org/D110337
      7e390dfe
    • Philip Reames's avatar
      [docs] Expand the pre-merge testing description a bit · e2f150c3
      Philip Reames authored
      Core changes are:
      
          Be explicit about desired balance between missing true positives and reporting false positives.
          Mention the opt-out mechanism.
          Provide links to background, and give description of who to contact if needed.
      
      Differential Revision: https://reviews.llvm.org/D110873
      e2f150c3
    • Philip Reames's avatar
      [test] refresh a couple of autogen tests · d652724c
      Philip Reames authored
      d652724c
    • Carl Ritson's avatar
      [AMDGPU] Only remove branches in SIInstrInfo::removeBranch · adf7043a
      Carl Ritson authored
      Without this change _term instructions can be removed during
      critical edge splitting.
      
      Reviewed By: foad
      
      Differential Revision: https://reviews.llvm.org/D111126
      adf7043a
    • Louis Dionne's avatar
      [libc++] Refactor how basic_string and vector hoist exception-throwing functions · 84b0b52b
      Louis Dionne authored
      In basic_string and vector, we've been encapsulating all exception
      throwing code paths in helper functions of a base class, which are defined
      in the compiled library. For example, __vector_base_common defines two
      methods, __throw_length_error() and __throw_out_of_range(), and the class
      is externally instantiated in the library. This was done a long time ago,
      but after investigating, I believe the goal of the current design was to:
      
      1. Encapsulate the code to throw an exception (which is non-trivial) in
         an externally-defined function so that the important code paths that
         call it (e.g. vector::at) are free from that code. Basically, the
         intent is for the "hot" code path to contain a single conditional jump
         (based on checking the error condition) to an externally-defined function,
         which handles all the exception-throwing business.
      
      2. Avoid defining this exception-throwing function once per instantiation
         of the class template. In other words, we want a single copy of
         __throw_length_error even if we have vector<int>, vector<char>, etc.
      
      3. Encapsulate the passing of the container-specific string (i.e. "vector"
         and "basic_string") to the underlying exception-throwing function
         so that object files don't contain those duplicated string literals.
         For example, we'd like to have a single "vector" string literal for
         passing to `std::__throw_length_error` in the library, instead of
         having one per translation unit.
      
      However, the way this is achieved right now has two problems:
      
      - Using a base class and exporting it is really weird - I've been confused
        about this ever since I first saw it. It's just a really unusual way of
        achieving the above goals. Also, it's made even worse by the fact that
        the definitions of __throw_length_error and __throw_out_of_range appear
        in the headers despite always being intended to be defined in the compiled
        library (via the extern template instantiation).
      
      - We end up exporting those functions as weak symbols, which isn't great
        for load times. Instead, it would be better to export those as strong
        symbols from the library.
      
      This patch fixes those issues while retaining ABI compatibility (e.g. we
      still export the exact same symbols as before). Note that we need to
      keep the base classes as-is to avoid breaking the ABI of someone who
      might inherit from std::basic_string or std::vector.
      
      Differential Revision: https://reviews.llvm.org/D111173
      84b0b52b
    • Heejin Ahn's avatar
      [WebAssembly] Remove WasmTagType · 3ec1760d
      Heejin Ahn authored
      This removes `WasmTagType`. `WasmTagType` contained an attribute and a
      signature index:
      ```
      struct WasmTagType {
        uint8_t Attribute;
        uint32_t SigIndex;
      };
      ```
      
      Currently the attribute field is not used and reserved for future use,
      and always 0. And that this class contains `SigIndex` as its property is
      a little weird in the place, because the tag type's signature index is
      not an inherent property of a tag but rather a reference to another
      section that changes after linking. This makes tag handling in the
      linker also weird that tag-related methods are taking both `WasmTagType`
      and `WasmSignature` even though `WasmTagType` contains a signature
      index. This is because the signature index changes in linking so it
      doesn't have any info at this point. This instead moves `SigIndex` to
      `struct WasmTag` itself, as we did for `struct WasmFunction` in D111104.
      
      In this CL, in lib/MC and lib/Object, this now treats tag types in the
      same way as function types. Also in YAML, this removes `struct Tag`,
      because now it only contains the tag index. Also tags set `SigIndex` in
      `WasmImport` union, as functions do.
      
      I think this makes things simpler and makes tag handling more in line
      with function handling. These two shares similar properties in that both
      of them have signatures, but they are kind of nominal so having the same
      signature doesn't mean they are the same element.
      
      Also a drive-by fix: the reserved 'attirubute' part's encoding changed
      from uleb32 to uint8 a while ago. This was fixed in lib/MC and
      lib/Object but not in YAML. This doesn't change object files because the
      field's value is always 0 and its encoding is the same for the both
      encoding.
      
      This is effectively NFC; I didn't mark it as such just because it
      changed YAML test results.
      
      Reviewed By: sbc100, tlively
      
      Differential Revision: https://reviews.llvm.org/D111086
      3ec1760d
    • Louis Dionne's avatar
      [libc++] Pickle substitutions to pass them to dsl.sh.py · d51f57c2
      Louis Dionne authored
      This is less brittle than hand-picking the substitutions that we
      pass to the test, since a config could theorically use non-base
      substitutions as well (such as defining %{flags} in terms of another
      substitution like %{include}).
      
      Also, print the decoded substitutions, which makes it much easier
      to debug the test when it fails.
      
      Differential Revision: https://reviews.llvm.org/D111179
      d51f57c2
    • Louis Dionne's avatar
      [runtimes] Allow FOO_TEST_CONFIG to be a relative path · 54a8a0d0
      Louis Dionne authored
      That makes it possible to store that value in a CMake cache if needed.
      
      Differential Revision: https://reviews.llvm.org/D110843
      54a8a0d0
    • Diego Caballero's avatar
      [mlir][Linalg] Add support for min/max reduction vectorization in linalg.generic · eaf2588a
      Diego Caballero authored
      This patch extends Linalg core vectorization with support for min/max reductions
      in linalg.generic ops. It enables the reduction detection for min/max combiner ops.
      It also renames MIN/MAX combining kinds to MINS/MAXS to make the sign explicit for
      floating point and signed integer types. MINU/MAXU should be introduce din the future
      for unsigned integer types.
      
      Reviewed By: pifon2a, ThomasRaoux
      
      Differential Revision: https://reviews.llvm.org/D110854
      eaf2588a
    • Zequan Wu's avatar
    • Sanjay Patel's avatar
      [InstCombine] add folds for logical nand/nor · bc72baa0
      Sanjay Patel authored
      This is noted as a regression in:
      https://llvm.org/PR52077
      bc72baa0
    • Sanjay Patel's avatar
      a56257e4
    • Heejin Ahn's avatar
      [lld][WebAssembly] Remove redundant check for undefined global (NFC) · 9a9ec8e0
      Heejin Ahn authored
      Also does some refactoring.
      
      Reviewed By: sbc100
      
      Differential Revision: https://reviews.llvm.org/D111101
      9a9ec8e0
  2. Oct 05, 2021
Loading