1. May 27, 2024
  2. May 26, 2024
    • Oleksandr T's avatar
      a4a43667
    • Shengchen Kan's avatar
      [X86][CodeGen] Support lowering for CCMP/CTEST (#91747) · 331eb8a0
      Shengchen Kan authored
      DAG combine for `CCMP` and `CTESTrr`:
      
      ```
      and/or(setcc(cc0, flag0), setcc(cc1, sub (X, Y)))
      ->
      setcc(cc1, ccmp(X, Y, ~cflags/cflags, cc0/~cc0, flag0))
      
      and/or(setcc(cc0, flag0), setcc(cc1, cmp (X, 0)))
       ->
      setcc(cc1, ctest(X, X, ~cflags/cflags, cc0/~cc0, flag0))
      ```
       where `cflags` is determined by `cc1`.
      
      Generic DAG combine:
      ```
      cmp(setcc(cc, X), 0)
      brcond ne
      ->
      X
      brcond cc
      
      sub(setcc(cc, X), 1)
      brcond ne
      ->
      X
      brcond ~cc
      ```
      
      Post DAG transform:  `ANDrr/rm + CTESTrr -> CTESTrr/CTESTmr`
      
      
      Pattern match for `CTESTri`:
      ```
      X= and A, B
      ctest(X, X, cflags, cc0/, flag0)
      ->
      ctest(A, B, cflags, cc0/, flag0)
      ```
      
      `CTESTmi` is already handled by the memory folding mechanism in MIR.
      331eb8a0
    • Timm Bäder's avatar
      [clang][Interp] Handle ObjCBoxedExprs · d0bb9173
      Timm Bäder authored
      d0bb9173
    • Timm Bäder's avatar
      [clang][Interp] Handle objc strings · 5220b7be
      Timm Bäder authored
      5220b7be
    • cor3ntin's avatar
      [Clang] Rewrite SourceLocExpr in default args (#93383) · 70d6e7c0
      cor3ntin authored
      In order for their dependency to be computed correctly, SourceLocExpr
      should refer to the context in which they are used.
      
      Fixes #92680
      70d6e7c0
    • Shilei Tian's avatar
      Revert "Reapply "[OpenMP][OMPX] Add shfl_down_sync (#93311)"" · cf9eeb67
      Shilei Tian authored
      This reverts commit 7b486558.
      cf9eeb67
    • Shilei Tian's avatar
      Reapply "[OpenMP][OMPX] Add shfl_down_sync (#93311)" · 7b486558
      Shilei Tian authored
      This reverts commit 9b31cc71.
      7b486558
    • Florian Hahn's avatar
      [VPlan] Add test for printing FOR with live-out. · ac17fbc0
      Florian Hahn authored
      Add additional test coverage for printing VPlans with a first-order
      recurrence with its result used outside the loop.
      ac17fbc0
    • Michael Kruse's avatar
      [clang-tools-extra] Revise IDE folder structure (#89744) · c87a7b3b
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode
      (`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
      when using the respective CMake's IDE generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      c87a7b3b
    • Ryosuke Niwa's avatar
      [webkit.RefCntblBaseVirtualDtor] Allow CRTP classes without a virtual destructor. (#92837) · faef8b4a
      Ryosuke Niwa authored
      Exempt CRTP (Curiously Recurring Template Pattern) classes with a delete
      operation acting on "this" pointer with an appropriate cast from the
      requirement that a ref-countable superclass must have a virtual
      destructor.
      
      To do this, this PR introduces new DerefFuncDeleteExprVisitor, which
      looks for a delete operation with an explicit cast to the derived class
      in a base class.
      
      This PR also changes the checker so that we only check a given class's
      immediate base class instead of all ancestor base classes in the class
      hierarchy. This is sufficient because the checker will eventually see
      the definition for every class in the class hierarchy and transitively
      proves every ref-counted base class has a virtual destructor or deref
      function which casts this pointer back to the derived class before
      deleting. Without this change, we would keep traversing the same list of
      base classes whenever we encounter a new subclass, which is wholly
      unnecessary.
      
      It's possible for DerefFuncDeleteExprVisitor to come to a conclusoin that
      there isn't enough information to determine whether a given templated
      superclass invokes delete operation on a subclass when the template
      isn't fully specialized for the subclass. In this case, we return
      std::nullopt in HasSpecializedDelete, and visitCXXRecordDecl will skip
      this declaration. This is okay because the checker will eventually see a
      concreate fully specialized class definition if it ever gets
      instantiated.
      faef8b4a
  3. May 25, 2024
    • Michael Kruse's avatar
      [polly] Revise IDE folder structure (#89752) · c16538fe
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode
      (`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
      when using the respective CMake's IDE generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      c16538fe
    • Michael Kruse's avatar
      Revise IDE folder structure (#89755) · e14f5f22
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode
      (`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
      when using the respective CMake's IDE generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      e14f5f22
    • Michael Kruse's avatar
      [openmp] Revise IDE folder structure (#89750) · 8bdc5776
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode
      (`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
      when using the respective CMake's IDE generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      8bdc5776
    • Michael Kruse's avatar
      [mlir] Revise IDE folder structure (#89749) · 064391df
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode
      (`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
      when using the respective CMake's IDE generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      064391df
    • Michael Kruse's avatar
      [lldb] Revise IDE folder structure (#89748) · c3efb576
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode
      (`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
      when using the respective CMake's IDE generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      c3efb576
    • Michael Kruse's avatar
      [flang] Revise IDE folder structure (#89745) · 76e7c8f4
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode (`set_property(TARGET <target>
      PROPERTY FOLDER "<title>")`) when using the respective CMake's IDE
      generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      76e7c8f4
    • Beal Wang's avatar
      [mlir] Do not print empty property (#93379) · 4d60be04
      Beal Wang authored
      
      
      Skip printing property as `<<<NULL ATTRIBUTE>>>` when operation has an
      empty property.
      
      Co-authored-by: default avatarBiao Wang <biaow@nvidia.com>
      4d60be04
    • Michael Kruse's avatar
      [clang] Revise IDE folder structure (#89743) · f2a385c7
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode (`set_property(TARGET <target>
      PROPERTY FOLDER "<title>")`) when using the respective CMake's IDE
      generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      f2a385c7
    • Michael Kruse's avatar
      [BOLT] Revise IDE folder structure (#89742) · c5a3f664
      Michael Kruse authored
      Update the folder titles for targets in the monorepository that have not
      seen taken care of for some time. These are the folders that targets are
      organized in Visual Studio and XCode (`set_property(TARGET <target>
      PROPERTY FOLDER "<title>")`) when using the respective CMake's IDE
      generator.
      
       * Ensure that every target is in a folder
       * Use a folder hierarchy with each LLVM subproject as a top-level folder
       * Use consistent folder names between subprojects
       * When using target-creating functions from AddLLVM.cmake, automatically
      deduce the folder. This reduces the number of
      `set_property`/`set_target_property`, but are still necessary when
      `add_custom_target`, `add_executable`, `add_library`, etc. are used. A
      LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
      root CMakeLists.txt.
      c5a3f664
    • David CARLIER's avatar
      9da81cee
    • Alexander Yermolovich's avatar
      [BOLT] Do not emit debug_names entry for DIEs with DW_AT_declaration (#93347) · 8c2da89e
      Alexander Yermolovich authored
      Previously BOLT was only doing it for DW_TAG_variables. It looks like
      other type of DIEs can have this. So making it global.
      8c2da89e