[PATCH] D42374: [RFC] Add IsFixed field to ISD::ArgFlagsTy
Alex Bradbury via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 23 02:04:10 PST 2018
asb added inline comments.
================
Comment at: include/llvm/CodeGen/GlobalISel/CallLowering.h:53-54
+ : Reg(Reg), Ty(Ty), Flags(Flags), IsFixed(IsFixed) {
+ if (IsFixed)
+ Flags.setFixed();
+ }
----------------
dsanders wrote:
> It looks like SelectionDAG and FastISel are both calling Flags.setFixed() themselves. Do we still need the IsFixed argument or is GlobalISel still using it?
The IsFixed field could fairly easily be removed. Ideally setArgFlags would also set IsFixed (probably by adding a bool IsFixed arg to that method), though I'd need to audit current GlobalISel to make sure setArgFlags is _always_ called. It seems it's not currently called for void return types at least.
Simply changing assignArg in AArch64CallLowering.cpp to use `Info.Flags.isFixed()` rather than `Info.IsFixed` seems to result in some minor test output changes. Given that Flags.IsFixed always set at the time the ArgInfo struct is created, there's clearly something I'm missing about the lifetime of Flags...
Repository:
rL LLVM
https://reviews.llvm.org/D42374
More information about the llvm-commits
mailing list