The purpose of isCCArgumentReg() is to help identify whether a given
register can be used for passing arguments when calling a function. The
initial usage is for the `-fzero-call-used-regs' commandline option,
which can optionally zero out argument registers. We don't care about
the registers used for the return values.
We piggyback off of *CallingConv.td information, which is used to
generate code to allocate a register. Instead of actually allocating a
register, it checks to see if a given register *could* be allocated,
based on the calling convention, and reports "true" if it is one of the
registers in the CC (the opposite of the allocation code, which reports
"false" when the register is allocated).
Not sure why you need ArgFlags or are setting inreg here, you need to preserve this from the original IR