[all-commits] [llvm/llvm-project] 04770d: [clang] Define convergence in C++ languages such a...

Sameer Sahasrabuddhe via All-commits all-commits at lists.llvm.org
Tue Apr 15 09:18:27 PDT 2025


  Branch: refs/heads/users/ssahasra/clang-generate-tokens
  Home:   https://github.com/llvm/llvm-project
  Commit: 04770deefa3d8e6db901727700b59ef78d5dbbdd
      https://github.com/llvm/llvm-project/commit/04770deefa3d8e6db901727700b59ef78d5dbbdd
  Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
  Date:   2025-04-15 (Tue, 15 Apr 2025)

  Changed paths:
    A clang/docs/ThreadConvergence.rst
    M clang/docs/conf.py
    M clang/docs/index.rst
    M clang/include/clang/AST/ParentMap.h
    A clang/include/clang/Analysis/Analyses/ConvergenceCheck.h
    M clang/include/clang/Analysis/CFG.h
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/AST/ParentMap.cpp
    M clang/lib/Analysis/AnalysisDeclContext.cpp
    M clang/lib/Analysis/CMakeLists.txt
    A clang/lib/Analysis/ConvergenceCheck.cpp
    M clang/lib/Sema/AnalysisBasedWarnings.cpp
    A clang/test/SemaHIP/convergence-warnings.hip

  Log Message:
  -----------
  [clang] Define convergence in C++ languages such as HIP, CUDA, OpenCL


  Commit: ea865dba2fb9cf45cace56536770b7c72f05d6be
      https://github.com/llvm/llvm-project/commit/ea865dba2fb9cf45cace56536770b7c72f05d6be
  Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
  Date:   2025-04-15 (Tue, 15 Apr 2025)

  Changed paths:
    M clang/docs/ThreadConvergence.rst
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Driver/Options.td
    A clang/lib/CodeGen/CGConvergence.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CMakeLists.txt
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    A clang/test/CodeGenHIP/convergence-tokens.hip
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/lib/IR/Instructions.cpp
    M llvm/lib/IR/IntrinsicInst.cpp

  Log Message:
  -----------
  [clang] Generate convergence control tokens in HIP


  Commit: efcd2487e9abe77ca5f095f842cc40d8890d90d1
      https://github.com/llvm/llvm-project/commit/efcd2487e9abe77ca5f095f842cc40d8890d90d1
  Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
  Date:   2025-04-15 (Tue, 15 Apr 2025)

  Changed paths:
    M clang/include/clang/Basic/AttrDocs.td

  Log Message:
  -----------
  don't overspecify convergent attribute


  Commit: fb6a38e16a3f6744055eaf7a5f4f2f88946da98a
      https://github.com/llvm/llvm-project/commit/fb6a38e16a3f6744055eaf7a5f4f2f88946da98a
  Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
  Date:   2025-04-15 (Tue, 15 Apr 2025)

  Changed paths:
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Analysis/ConvergenceCheck.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGConvergence.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    A clang/test/CodeGenHIP/noconvergent-statement.hip
    A clang/test/SemaHIP/noconvergent-errors/backwards_jump.hip
    A clang/test/SemaHIP/noconvergent-errors/jump-into-nest.hip
    A clang/test/SemaHIP/noconvergent-errors/no-errors.hip
    A clang/test/SemaHIP/noconvergent-errors/simple_jump.hip

  Log Message:
  -----------
  [clang] Redefine "noconvergent" statement

This replaces the existing simple notion on every asm call in a
"noconvergent" the frontend removes the "convergent" in LLVM IR.

The new semantics introduces a more powerful notion that a "noconvergent"
statement may contain convergent operations, but the resulting convergence
constraints are limited to the scope of that statement. As a whole the statement
itself does not place any convergence constraints on the control flow reaching
it. When emitting convergence tokens, this attribute results in a call to the
anchor intrinsic that determines convergence within the statement.


Compare: https://github.com/llvm/llvm-project/compare/04770deefa3d%5E...fb6a38e16a3f

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list