[LLVMdev] [RFC] New function attributes for errno-setting functions
kparzysz at codeaurora.org
Tue Sep 17 13:23:14 PDT 2013
On 9/17/2013 2:43 PM, Hal Finkel wrote:
> That would depend on how this attribute was used; it could only be used by a pass that did actually understand what those side effects were (like the loop vectorizer understanding that, if errno is ignored, then vectorizing cos() is legal). I don't object to making the name generic, but I want to make sure that we're all on the same page regarding what it means.
In some cases the exact nature of the side effects wouldn't need to be
known. For example, if the side-effects are known to be ignored, a call
to such a function could be eliminated as dead code.
Also, the "errno-ignored" or equivalent attribute brings up this question:
given this code
x = cos(y); // assume "errno-ignored"
z = global;
is it safe to infer that "global" is not errno? In other words, could
this attribute be used to refine alias information with respect to errno?
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev