[PATCH] D34240: [WebAssembly] Expansion of llvm.umul.overflow with i64 type operands.
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 22 12:53:31 PDT 2017
efriedma added inline comments.
================
Comment at: lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:8121
+
+ RetTys.clear();
+ RetTys.resize(NumValues);
----------------
efriedma wrote:
> I'm a little suspicious about the way you're messing with RetTys here; the contents shouldn't depend on CanLowerReturn.
Okay, so this is doing what I thought it's doing.
Making the type of the node returned by TargetLowering::LowerCallTo different based on the target's calling convention is not acceptable. Both sides of the "if (!CanLowerReturn)" need to do essentially the same thing. (Basically, you need to skip calling getCopyFromParts in the CanLowerReturn case.)
The end result still isn't really quite right; we aren't passing the right argument types to the calling convention code. But hopefully that problem won't bite anyone.
https://reviews.llvm.org/D34240
More information about the llvm-commits
mailing list