[PATCH] D114778: [XCOFF][FastISel] make fast isel can lower general intrinsics

ChenZheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 30 17:13:53 PST 2021


shchenz added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/FastISel.cpp:1784
+    // But fast isel still have the ability to do selection for intrinsics.
+    if (TM.getTargetTriple().isOSAIX() && !dyn_cast<IntrinsicInst>(I))
       return false;
----------------
nemanjai wrote:
> qiucf wrote:
> > - In this case, no extra instruction will be really emitted from this intrinsic, but what if it's an intrinsic producing a real function call?
> > - Is it necessary to put the check here, not in `PPCFastISel::fastSelectInstruction`?
> > - In this case, no extra instruction will be really emitted from this intrinsic, but what if it's an intrinsic producing a real function call?
> I don't think this is an issue since `FastISel::selectIntrinsicCall()` only handles a fixed list of intrinsics and the rest are handled in `FastISel::fastLowerIntrinsicCall()` which we don't override.
> > - Is it necessary to put the check here, not in `PPCFastISel::fastSelectInstruction`?
> +1
> The fact that we have the same check in both places seems odd and problematic. And the fact that we are now diverging with those two checks is even stranger.
> 
I deleted the redundant logic in `PPCFastISel::fastSelectInstruction` for `Instruction::Call`. It is exactly the same as the one in the target-independent one. And PowerPC will also use the target-independent ISel.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D114778/new/

https://reviews.llvm.org/D114778



More information about the llvm-commits mailing list