1. Apr 17, 2022
    • hsmahesha's avatar
      [AMDGPU] Pre-checkin updated lit tests for D123525. · 66c1fc19
      hsmahesha authored
      Fix indentation within the lit test - agpr-copy-no-free-registers.ll.
      
      Reviewed By: rampitec
      
      Differential Revision: https://reviews.llvm.org/D123809
      66c1fc19
    • Jacques Pienaar's avatar
      bdabe505
    • Lang Hames's avatar
      [JITLink] Error instead of asserting on unrecognized edge kinds. · 42614062
      Lang Hames authored
      It's idiomatic to require that plugins (especially platform plugins) be
      installed to handle special edge kinds. If the plugins are not installed and an
      object is loaded that uses one of the special edge kinds then we want to error
      out rather than asserting.
      42614062
    • Saleem Abdulrasool's avatar
      Windows: correct iteration of additional search paths · 2696d82f
      Saleem Abdulrasool authored
      This adjusts the path iteration - `paths` is a null-terminated sequence
      of C strings, creating an array from a single contiguous buffer.  We
      would previously continue to iterate indefinitely as we did not check if
      we had encountered the terminator.
      
      Found by inspection.
      2696d82f
    • Jonathan Wakely's avatar
      [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks · ef94609d
      Jonathan Wakely authored
      This makes it a little easier to reuse the libc++ tests for another
      std::lib (specifically libstdc++).
      
      The regex_error::what() strings are different in other
      implementations, so should be tested with LIBCPP_ASSERT so that those
      checks are skipped for other implementations.
      
      The value of ECMAScript constant is non-zero in other implementations,
      and conditionally for libc++, so adjust the preprocessor condition for
      that too.
      
      Reviewed By: ldionne, #libc, philnik, Mordante
      
      Spies: Mordante, philnik, libcxx-commits
      
      Differential Revision: https://reviews.llvm.org/D122574
      ef94609d
    • Peter Klausler's avatar
      [flang] Add & use a better visit() (take 2) · cd03e96f
      Peter Klausler authored
      Adds flang/include/flang/Common/log2-visit.h, which defines
      a Fortran::common::visit() template function that is a drop-in
      replacement for std::visit().  Modifies most use sites in
      the front-end and runtime to use common::visit().
      
      The C++ standard mandates that std::visit() have O(1) execution
      time, which forces implementations to build dispatch tables.
      This new common::visit() is O(log2 N) in the number of alternatives
      in a variant<>, but that N tends to be small and so this change
      produces a fairly significant improvement in compiler build
      memory requirements, a 5-10% improvement in compiler build time,
      and a small improvement in compiler execution time.
      
      Building with -DFLANG_USE_STD_VISIT causes common::visit()
      to be an alias for std::visit().
      
      Calls to common::visit() with multiple variant arguments
      are referred to std::visit(), pending further work.
      
      This change is enabled only for GCC builds with GCC >= 9;
      an earlier attempt (D122441) ran into bugs in so...
      cd03e96f
    • Craig Topper's avatar
      [X86] Move some hasOneUse checks after checking what the opcode is. · c6fdb1de
      Craig Topper authored
      Calling hasOneUse can be expensive on nodes with multiple results.
      Especially when some results are Chains. By checking the opcode first,
      we can avoid walking the uses if it isn't an interesting node,
      and thus avoid calling hasOneUse on a node that might have many uses.
      
      Found by profiling the IR given in D123857.
      
      Reviewed By: RKSimon
      
      Differential Revision: https://reviews.llvm.org/D123881
      c6fdb1de
    • Lang Hames's avatar
      [ORC] Make IRSpeculationLayer::BaseLayer an IRLayer. · a7bceb3f
      Lang Hames authored
      BaseLayer was originally written as an IRCompileLayer, but there was no need for
      this restriction. Using IRLayer gives clients more flexibility in choosing the
      underlying layer.
      a7bceb3f
    • Andrew Litteken's avatar
      [IROutliner] Ensure that phi values that are passed in as arguments are remapped as arguments · d7c56a07
      Andrew Litteken authored
      Issue: https://github.com/llvm/llvm-project/issues/54430
      
      For incoming values of phi nodes added to an outlined function to accommodate different exit paths in the function, when a value is a constant that is passed into the outlined function as an argument, we find the corresponding value in the first extracted function used to fill the overall outlined function. When this value is an argument, the corresponding value used will be the old value, prior to outlining. This patch maintains a mapping from these values to arguments, and uses this mapping to update the added phi node accordingly.
      
      Reviewers: paquette
      
      Recommit of d6eb480a
      
      Differential Revision: https://reviews.llvm.org/D122206
      d7c56a07
    • eop Chen's avatar
      [LSR] Update outdated comment · 38ec33d6
      eop Chen authored
      38ec33d6
    • Valentin Clement's avatar
      [mlir][CSE] Add ability to remove commutative operations · bd514967
      Valentin Clement authored
      This patch takes advantage of the Commutative trait on operation
      to remove identical commutative operations where the operands are swapped.
      
      The second operation below can be removed since `arith.addi` is commutative.
      ```
      %1 = arith.addi %a, %b : i32
      %2 = arith.addi %b, %a : i32
      ```
      
      Reviewed By: rriddle
      
      Differential Revision: https://reviews.llvm.org/D123492
      bd514967
    • Nico Weber's avatar
      [gn build] (manually) port f2526c1a · bf59cd72
      Nico Weber authored
      bf59cd72
  2. Apr 16, 2022