[all-commits] [llvm/llvm-project] 06cfdd: [OpenMP][Fix] Properly inherit calling convention

Joseph Huber via All-commits all-commits at lists.llvm.org
Mon Jan 24 17:38:29 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 06cfdd5224bf5496e3d3dbdb9f73e77161ad5438
      https://github.com/llvm/llvm-project/commit/06cfdd5224bf5496e3d3dbdb9f73e77161ad5438
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2022-01-24 (Mon, 24 Jan 2022)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/spmdization.ll

  Log Message:
  -----------
  [OpenMP][Fix] Properly inherit calling convention

Previously in OpenMPOpt we did not correctly inherit the calling
convention of the callee when creating new OpenMP runtime calls. This
created issues when the calling convention was changed during
`GlobalOpt` but a new call was creating without the correct calling
convention. This lead to the call being replaced with a poison value in
`InstCombine` due to undefined behaviour and causing large portions of
the program to be incorrectly eliminated. This patch correctly inherits
the existing calling convention from the callee.

Reviewed By: tianshilei1992, jdoerfert

Differential Revision: https://reviews.llvm.org/D118059


  Commit: 5eb49009ebe6f1672e6c72f8ea1fe07d4018f682
      https://github.com/llvm/llvm-project/commit/5eb49009ebe6f1672e6c72f8ea1fe07d4018f682
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2022-01-24 (Mon, 24 Jan 2022)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/replace_globalization.ll
    M llvm/test/Transforms/OpenMP/spmdization.ll

  Log Message:
  -----------
  [OpenMP] Add more identifier to created shared globals

Currenly we push some variables to a global constant containing shared
memory as an optimization. This generated constant had internal linkage
and should not have collided with any known identifiers in the
translation unit. However, there have been observed cases of this
optimiztaion unintentionally colliding with undocumented PTX
identifiers. This patch adds a suffix to the created globals to
hopefully bypass this.

Depends on D118059

Reviewed By: tianshilei1992

Differential Revision: https://reviews.llvm.org/D118068


Compare: https://github.com/llvm/llvm-project/compare/16bff06790a7...5eb49009ebe6


More information about the All-commits mailing list