Remove the loop over the uses of the CallSite in ArgumentUsesTracker.
Since we have the Use * for actual argument operand, we can just use
pointer subtraction.
The time complexity remains the same though (except for a vararg
argument) -- std::advance is O(UseIndex) for the ArgumentList
iterator.
The real motivation is to make a later change adding support for operand
bundles simpler.
Why op_begin here rather than arg_begin?
Also, its a bit odd that the use index here is the correct increment amount for the function argument iterator -- where is the function operand to the callsite?
I'd at least leave some comments to remind the reader of the surprising indexing contract of argument operands vs. function operands and the function argument list.