[PATCH] D157475: [GlobalISel] introduce MIFlag::NoConvergent
Sameer Sahasrabuddhe via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 8 22:51:32 PDT 2023
sameerds created this revision.
sameerds added reviewers: arsenm, foad, nhaehnle.
Herald added subscribers: StephenFan, kerbowa, hiraditya, tpr, jvesely.
Herald added a project: All.
sameerds requested review of this revision.
Herald added subscribers: llvm-commits, wdng.
Herald added a project: LLVM.
Some opcodes in MIR are defined to be convergent by the target by setting
IsConvergent in the corresponding TD file. For example, in AMDGPU, the opcodes
SI_CALL and G_INTRINSIC* are marked as convergent. But this is too conservative,
since calls to functions that do not execute convergent operations should not be
marked convergent. This information is available in LLVM IR.
The new flag MIFlag::NoConvergent now allows the IR translator to mark an
instruction as not performing any convergent operations. It is relevant only on
occurrences of opcodes that are marked convergent. It may be specified on
occurrences of other opcodes, but that's redundant.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D157475
Files:
llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
llvm/include/llvm/CodeGen/MachineInstr.h
llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
llvm/lib/CodeGen/MIRParser/MILexer.cpp
llvm/lib/CodeGen/MIRParser/MILexer.h
llvm/lib/CodeGen/MIRParser/MIParser.cpp
llvm/lib/CodeGen/MIRPrinter.cpp
llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
llvm/test/CodeGen/AMDGPU/GlobalISel/dereferenceable-declaration.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/dropped_debug_info_assert.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-assert-align.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-abi-attribute-hints.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-implicit-args.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-non-fixed.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-return-values.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-sret.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-indirect-call.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-sibling-call.ll
llvm/test/CodeGen/MIR/AMDGPU/noconvergent.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D157475.548465.patch
Type: text/x-patch
Size: 212012 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230809/79ddd341/attachment-0001.bin>
More information about the llvm-commits
mailing list