Allow arguments as base storage for temporary variables
If the given base storage name of a temporary matches a name of an argument of the kernel, base_storage declaration is skipped and the argument is used instead.
If the given base storage name of a temporary matches a name of an argument of the kernel, base_storage declaration is skipped and the argument is used instead.