[PATCH] D107102: [WebAssembly] Add new pass to lower int/ptr conversions of reftypes
Thomas Lively via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 2 05:47:59 PDT 2021
tlively accepted this revision.
tlively added a comment.
This revision is now accepted and ready to land.
Nice! LGTM with those cleanups applied.
================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyLowerRefTypesIntPtrConv.cpp:63
+ PtrToIntInst *PTI = dyn_cast<PtrToIntInst>(&*I);
+ IntToPtrInst *ITP = PTI ? 0 : dyn_cast<IntToPtrInst>(&*I);
+ if (!(PTI && (WebAssemblyTargetLowering::isFuncrefType(
----------------
`dyn_cast` should be pretty cheap, so I think it would be ok to just unconditionally do this second `dyn_cast` as well.
================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyLowerRefTypesIntPtrConv.cpp:64-67
+ if (!(PTI && (WebAssemblyTargetLowering::isFuncrefType(
+ PTI->getPointerOperand()->getType()) ||
+ WebAssemblyTargetLowering::isExternrefType(
+ PTI->getPointerOperand()->getType()))) &&
----------------
It's probably worth making a `isRefType` helper that checks both of these conditions.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107102/new/
https://reviews.llvm.org/D107102
More information about the llvm-commits
mailing list