[PATCH] D91331: Add hook for target to customize different legalization action according to the input type
Qing Shan Zhang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 24 23:22:54 PST 2020
steven.zhang added inline comments.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:4335
+
+ // If the input is not legal, eg: i1 -> fp, then it needs to be promoted to
+ // a larger type, eg: i8 -> fp. Even if it is legal, no libcall may exactly
----------------
craig.topper wrote:
> The input type should be legal here so I don't think this comment makes sense as is.
Ah, the evil for copy-paste. Yes, it is legal here. I will update the comments. For PowerPC, i1 is legal type, so, we need this part of code to extend it to the type that has libcall.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:4447
+ // We can only expand it into libcall if the TRUNC is 0.
+ const ConstantSDNode *TRUNC = dyn_cast<ConstantSDNode>(Node->getOperand(1));
+ assert(TRUNC && TRUNC->isNullValue() &&
----------------
craig.topper wrote:
> The result of a dyn_cast shouldn't be checked for null by an assert. That should just be a cast. Is it dyn_cast in the type legalizer too?
Good catch. I will update it with cast. In fact, the type legalizer didn't skip this extra operand which seems wrong. See SoftenFloatRes_FP_ROUND(). We can fix it later I think.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91331/new/
https://reviews.llvm.org/D91331
More information about the llvm-commits
mailing list