diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2023-06-07 09:03:17 -0400 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2023-06-09 21:04:37 -0400 |
commit | 3c848194f28decca41b7362f9dd35d4939797724 (patch) | |
tree | d88753db186e9c8eedfd95cd738d2a12aee2be4f /llvm/lib/CodeGen/TargetPassConfig.cpp | |
parent | 2e16df352c7acb910313c80ac90b650ad9c14a3d (diff) | |
download | llvm-3c848194f28decca41b7362f9dd35d4939797724.zip llvm-3c848194f28decca41b7362f9dd35d4939797724.tar.gz llvm-3c848194f28decca41b7362f9dd35d4939797724.tar.bz2 |
CodeGen: Expand memory intrinsics in PreISelIntrinsicLowering
Expand large or unknown size memory intrinsics into loops in the
default lowering pipeline if the target doesn't have the corresponding
libfunc. Previously AMDGPU had a custom pass which existed to call the
expansion utilities.
With a default no-libcall option, we can remove the libfunc checks in
LoopIdiomRecognize for these, which never made any sense. This also
provides a path to lifting the immarg restriction on
llvm.memcpy.inline.
There seems to be a bug where TLI reports functions as available if
you use -march and not -mtriple.
Diffstat (limited to 'llvm/lib/CodeGen/TargetPassConfig.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TargetPassConfig.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index 86490c0..8ece4c7 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -1088,8 +1088,8 @@ bool TargetPassConfig::addISelPasses() { if (TM->useEmulatedTLS()) addPass(createLowerEmuTLSPass()); - addPass(createPreISelIntrinsicLoweringPass()); PM->add(createTargetTransformInfoWrapperPass(TM->getTargetIRAnalysis())); + addPass(createPreISelIntrinsicLoweringPass()); addPass(createExpandLargeDivRemPass()); addPass(createExpandLargeFpConvertPass()); addIRPasses(); |