Lambda funcThis patch added options do not have names, -fhip-lambda-host-device. therefore they do not need host/deviceWhen it is enabled,
attribute for overloading resolution. They are also have internal linkage andclang let lambda functions without host/device attributes to be host device,
is only emitted if used, therefore no need to use host/device attribute to
indicate that they should only be emitted for host or device, since clang
can detect whether they are used and emitted accordingly.
Therefore it seems letting lambda functions have host device attributes
by default should not cause ambiguity or unexpected emission.
On the other hand, inferring host/device attribute of lambda function
by context is inaccurate, since a lambda function can be defined in
a host function and passed to a template kernel as template argument
and called in that kernel, i.e., many cases a lambda function defined in
a host function is intended to be a device functionf the lambda function does not capture by reference.
This patch let lambda function be host device by default for HIP.
This should make lambda easier to use without unwanted side effectIt also mask constexpr lambda functions to be host device.