[all-commits] [llvm/llvm-project] 932e4f: [FunctionAttrs][NPM] Fix handling of convergent

aeubanks via All-commits all-commits at lists.llvm.org
Mon Nov 23 21:10:14 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 932e4f88157194986fa9624edfea9abb9fbde77f
      https://github.com/llvm/llvm-project/commit/932e4f88157194986fa9624edfea9abb9fbde77f
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Transforms/FunctionAttrs/convergent.ll

  Log Message:
  -----------
  [FunctionAttrs][NPM] Fix handling of convergent

The legacy pass didn't properly detect indirect calls.

We can still remove the convergent attribute when there are indirect
calls. The LangRef says:

> When it appears on a call/invoke, the convergent attribute indicates
that we should treat the call as though we’re calling a convergent
function. This is particularly useful on indirect calls; without this we
may treat such calls as though the target is non-convergent.

So don't skip handling of convergent when there are unknown calls.

Reviewed By: jdoerfert

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




More information about the All-commits mailing list