[all-commits] [llvm/llvm-project] 57224f: Don't treat readnone call in presplit coroutine as...

Chuanqi Xu via All-commits all-commits at lists.llvm.org
Tue Jul 19 19:39:22 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 57224ff4a6833dca1f17568cc9cf77f9579030ae
      https://github.com/llvm/llvm-project/commit/57224ff4a6833dca1f17568cc9cf77f9579030ae
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2022-07-20 (Wed, 20 Jul 2022)

  Changed paths:
    M llvm/docs/Coroutines.rst
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    A llvm/test/Transforms/Coroutines/coro-readnone-01.ll
    A llvm/test/Transforms/Coroutines/coro-readnone-02.ll
    M llvm/unittests/Analysis/AliasAnalysisTest.cpp
    M llvm/unittests/IR/InstructionsTest.cpp

  Log Message:
  -----------
  Don't treat readnone call in presplit coroutine as not access memory

To solve the readnone problems in coroutines. See
https://discourse.llvm.org/t/address-thread-identification-problems-with-coroutine/62015
for details.

According to the discussion, we decide to fix the problem by inserting
isPresplitCoroutine() checks in different passes instead of
wrapping/unwrapping readnone attributes in CoroEarly/CoroCleanup passes.
In this direction, we might not be able to cover every case at first.
Let's take a "find and fix" strategy.

Reviewed By: nikic, nhaehnle, jyknight

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




More information about the All-commits mailing list