Displaying 8 results from an estimated 8 matches for "welldefin".
Did you mean:
welldefined
2013 Jul 22
2
[LLVMdev] Does nounwind have semantics?
...t least not in a centralized fashion) and adding a very specific attribute for each of them. I'm not sure having function declarations with "readnone, nounwind, nolongjmp, halting, nodivbyzero, nopoisonval, nocomparelabels, nounreachable, ..." is desirable.
We could also have a "welldefined" attribute and a "halting" attribute where "welldefined" subsumes "halting", if the specific case of a function which halts but may have undefined behavior is important.
While the two are not orthogonal, it's similar to the situation with "readnone&quo...
2013 Jul 25
3
[LLVMdev] Does nounwind have semantics?
...t least not in a centralized fashion) and adding a very specific attribute for each of them. I'm not sure having function declarations with "readnone, nounwind, nolongjmp, halting, nodivbyzero, nopoisonval, nocomparelabels, nounreachable, ..." is desirable.
We could also have a "welldefined" attribute and a "halting" attribute where "welldefined" subsumes "halting", if the specific case of a function which halts but may have undefined behavior is important.
While the two are not orthogonal, it's similar to the situation with "readnone"...
2013 Jul 22
0
[LLVMdev] Does nounwind have semantics?
...> fashion) and adding a very specific attribute for each of them. I'm not
> sure having function declarations with "readnone, nounwind, nolongjmp,
> halting, nodivbyzero, nopoisonval, nocomparelabels, nounreachable, ..." is
> desirable.
>
> We could also have a "welldefined" attribute and a "halting" attribute
> where "welldefined" subsumes "halting", if the specific case of a function
> which halts but may have undefined behavior is important.
> While the two are not orthogonal, it's similar to the situation with
>...
2013 Jul 25
0
[LLVMdev] Does nounwind have semantics?
...d adding a very specific attribute for each
> of them. I'm not sure having function declarations with "readnone,
> nounwind, nolongjmp, halting, nodivbyzero, nopoisonval,
> nocomparelabels, nounreachable, ..." is desirable.
>
> We could also have a "welldefined" attribute and a "halting"
> attribute where "welldefined" subsumes "halting", if the specific
> case of a function which halts but may have undefined behavior is
> important.
> While the two are not orthogonal, it's similar to th...
2013 Jul 22
0
[LLVMdev] Does nounwind have semantics?
Kuperstein, Michael M wrote:
> I'm not sure I understand why it's blocked on that, by the way.
It blocks our ability to automatically deduce the halting attribute in
the optimizer, which was necessary for the use case I had at the time.
If you have a use case of your own, feel free to propose the patch!
(Technically it's not *blocked* -- see how my patch does it! -- but the
2013 Jul 25
2
[LLVMdev] Does nounwind have semantics?
...d adding a very specific attribute for each
> of them. I'm not sure having function declarations with "readnone,
> nounwind, nolongjmp, halting, nodivbyzero, nopoisonval,
> nocomparelabels, nounreachable, ..." is desirable.
>
> We could also have a "welldefined" attribute and a "halting"
> attribute where "welldefined" subsumes "halting", if the specific
> case of a function which halts but may have undefined behavior is
> important.
> While the two are not orthogonal, it's similar to th...
2013 Jul 22
2
[LLVMdev] Does nounwind have semantics?
I'm not sure I understand why it's blocked on that, by the way.
Even if we can't apply the attribute ourselves, I don't see why we wouldn't expose that ability to frontends.
I'm not entirely sure "halting" is the right attribute either, by the way.
What I, personally, would like to see is a way to specify a function call is safe to speculatively execute. That
2013 Jul 31
4
[LLVMdev] [Proposal] Speculative execution of function calls
...tic for two reasons - it's not clear both what the precise requirements for safety are (right now, "I know it when I see it", and I'm not sure I want to set it in stone), and what the granularity of these orthogonal attributes should be. For example, {readnone, nounwind, halting, welldefined} sounds like a good start, but I'm not sure whether "welldefined" is not too much of a catch-all, or whether this set is, in fact, exhaustive. So I'm more inclined towards (a).
I'm attaching a patch that implements option (a) (the same patch from llvm-commits), but feel fre...