aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2022-10-28 11:21:30 +0200
committerNikita Popov <npopov@redhat.com>2022-11-08 09:27:22 +0100
commit3ddf56fd37b863bd778a63339e7c1ad9eca789d9 (patch)
tree3b794e8b8846425b1b094511846f8447f49416dd /llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
parent3705e038e4eb7514368024b0d70047bd4cecfc73 (diff)
downloadllvm-3ddf56fd37b863bd778a63339e7c1ad9eca789d9.zip
llvm-3ddf56fd37b863bd778a63339e7c1ad9eca789d9.tar.gz
llvm-3ddf56fd37b863bd778a63339e7c1ad9eca789d9.tar.bz2
[Statepoint] Use default attributes for some GC intrinsics
This adds the default intrinsic attributes (nosync, nofree, nocallback, willreturn) to the gc.result, gc.relocate, gc.pointer.base and gc.pointer.offset intrinsics. As far as I understand, all of these are supposed to be pure. Some quotes from LangRef: > A gc.result is modeled as a ‘readnone’ pure function. It has no > side effects since it is just a projection of the return value of > the previous call represented by the gc.statepoint. > A gc.relocate is modeled as a readnone pure function. It has no > side effects since it is just a way to extract information about > work done during the actual call modeled by the gc.statepoint. Having willreturn in particular will be important to avoid optimization regressions in the future. Differential Revision: https://reviews.llvm.org/D136929
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp')
0 files changed, 0 insertions, 0 deletions