1. Feb 27, 2024
    • Paul Kirth's avatar
      Make variable static + rename · ffaa39b0
      Paul Kirth authored
      Created using spr 1.3.4
      ffaa39b0
    • Paul Kirth's avatar
      Refactor option names, and update test · fc2e672d
      Paul Kirth authored
      Created using spr 1.3.4
      fc2e672d
    • Paul Kirth's avatar
      [𝘀𝗽𝗿] initial version · f3009e84
      Paul Kirth authored
      Created using spr 1.3.4
      f3009e84
    • Paul Kirth's avatar
      [𝘀𝗽𝗿] changes to main this commit is based on · ed49c44c
      Paul Kirth authored
      Created using spr 1.3.4
      
      [skip ci]
      ed49c44c
    • Arthur Eubanks's avatar
      [lld/ELF] Add documentation on large sections (#82560) · 4bc3b350
      Arthur Eubanks authored
      Fixes #82438
      4bc3b350
    • Tom Honermann's avatar
      [llvm][docs] Update the Python version requirement to 3.8.0 for lit testing on... · 1d2eced0
      Tom Honermann authored
      [llvm][docs] Update the Python version requirement to 3.8.0 for lit testing on Windows with substitute (virtual) drives. (#81663)
      
      Following the changes made for:
      - https://reviews.llvm.org/D154130: [lit][clang] Avoid realpath on Windows due to MAX_PATH limitations
      in commit:
      - 05d613ea
      
      Python 3.8.0 or newer is now required by at least the following tests
      when they are run on Windows from a substitute (virtual) drive. A
      substitute drive is often used as a workaround for `MAX_PATH`
      limitations on Windows. These tests are impacted because they use the
      lit `%{?:real}` path expansion syntax to expand symbolic links and
      substitute drives. This path expansion is implemented with Python's
      `os.path.realpath()` function which changed behavior in Python 3.8.0
      with regard to expansion of substitute drives. The changes mentioned
      above rely on the newer Python behavior.
      - `clang/test/Lexer/case-insensitive-include-absolute.c`
      - `clang/test/Lexer/case-insensitive-include-win.c`
      
      This change updates the LLVM Getting Started guide to note this newer
      Python version dependency for this relatively niche case. Python 3.6.0
      remains the minimum required Python version otherwise.
      1d2eced0
    • Matthias Springer's avatar
      [mlir][Transforms] Fix compile time regression in dialect conversion (#83023) · 45732b64
      Matthias Springer authored
      The dialect conversion does not directly erase ops that are
      replaced/erased with a rewriter. Instead, the op stays in place and is
      erased at the end if the dialect conversion succeeds. However, ops that
      were replaced/erased are ignored from that point on.
      
      #81757 introduced a compile time regression that made the check whether
      an op is ignored or not more expensive. Whether an op is ignored or not
      is queried many times throughout a dialect conversion, so the check must
      be fast.
      
      After this change, replaced ops are stored in the `ignoredOps` set. This
      also simplifies the dialect conversion a bit.
      45732b64
    • Farzon Lotfi's avatar
      [HLSL] Implementation of dot intrinsic (#81190) · 82acec15
      Farzon Lotfi authored
      This change implements https://github.com/llvm/llvm-project/issues/70073
      
      HLSL has a dot intrinsic defined here:
      
      https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-dot
      
      The intrinsic itself is defined as a HLSL_LANG LangBuiltin in
      Builtins.td.
      This is used to associate all the dot product typdef defined
      hlsl_intrinsics.h
      with a single intrinsic check in CGBuiltin.cpp & SemaChecking.cpp.
      
      In IntrinsicsDirectX.td we define the llvmIR for the dot product.
      A few goals were in mind for this IR. First it should operate on only
      vectors. Second the return type should be the vector element type. Third
      the second parameter vector should be of the same size as the first
      parameter. Finally `a dot b` should be the same as `b dot a`.
      
      In CGBuiltin.cpp hlsl has built on top of existing clang intrinsics via
      EmitBuiltinExpr. Dot
      product though is language specific intrinsic and so is guarded behind
      getLangOpts().HLSL.
      The call chain looks like this: EmitBuiltinExpr -> EmitHLSLBuiltinExp
      
      EmitHLSLBuiltinExp dot product intrinsics makes a destinction
      between vectors and scalars. This is because HLSL supports dot product
      on scalars which simplifies down to multiply.
      
      Sema.h & SemaChecking.cpp saw the addition of
      CheckHLSLBuiltinFunctionCall, a language specific semantic validation
      that can be expanded for other hlsl specific intrinsics.
      
      Fixes #70073 
      82acec15
  2. Feb 26, 2024