aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2022-09-22 17:16:48 +0200
committerNikita Popov <npopov@redhat.com>2022-09-23 12:05:35 +0200
commit6c6b48434ed85841f147c789a96a309e1fff16ae (patch)
tree9c567d864850ebf29651f73e2f4c515acc1d7393 /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parent7438df99604233bf9e319875adcbd97aae608520 (diff)
downloadllvm-6c6b48434ed85841f147c789a96a309e1fff16ae.zip
llvm-6c6b48434ed85841f147c789a96a309e1fff16ae.tar.gz
llvm-6c6b48434ed85841f147c789a96a309e1fff16ae.tar.bz2
[BasicAA] Clean up calculation of FMRB from attributes
The current implementation for call sites is pretty convoluted when you take the underlying implementation of the used APIs into account. We will query the call site attributes, and then fall back to the function attributes while taking into account operand bundles. However, getModRefBehavior() already has it's own (more accurate) logic for combining call-site FMRB with function FMRB. Clean this up by extracting a function that only fetches FMRB from attributes, which can be directly used in getModRefBehavior() for functions, and needs to be combined with an operand-bundle respecting fallback in the call site case. One caveat (that makes this non-NFC) is that CallBase function attribute lookups allow using attributes from functions with mismatching signature. To ensure we don't regress quality, do the same for the function FMRB fallback.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions