Displaying 3 results from an estimated 3 matches for "exception_on".
2016 Feb 17
7
RFC: Add guard intrinsics to LLVM
...ng guards.
## environments without support for bailing to the interpreter
Our VM has deeply integrated support for deoptimizations, but not all
language runtimes do. If there is a need for non deoptimizing guards, we
can consider introducing a variant of `@llvm.guard_on`:
```
declare void @llvm.exception_on(i1 %predicate, i32 %exceptionKind)
```
with this one having the semantics that it always throws an exception
if `%predicate` fails. Only the non-widening optimizations for
`@llvm.guard_on` will apply to `@llvm.exception_on`.
## memory effects (unresolved)
[I haven't come up with a good mode...
2016 Feb 18
2
RFC: Add guard intrinsics to LLVM
...interpreter
>
> Our VM has deeply integrated support for deoptimizations, but not all
> language runtimes do. If there is a need for non deoptimizing
> guards, we
> can consider introducing a variant of `@llvm.guard_on`:
>
> ```
> declare void @llvm.exception_on(i1 %predicate, i32 %exceptionKind)
> ```
>
> with this one having the semantics that it always throws an exception
> if `%predicate` fails. Only the non-widening optimizations for
> `@llvm.guard_on` will apply to `@llvm.exception_on`.
>
> ## memory effects...
2016 Feb 18
2
RFC: Add guard intrinsics to LLVM
...; whatever they want.) Something like __llvm_side_exit seems like a
> reasonable choice.
SGTM.
>> with this one having the semantics that it always throws an exception
>> if `%predicate` fails. Only the non-widening optimizations for
>> `@llvm.guard_on` will apply to `@llvm.exception_on`.
>
> Not sure we actually need this. A valid implementation of the side exit
> handler (which would do the OSR for us) is to call a runtime routine which
> generates and throws the exception. The only bit we might need is a
> distinction between widdenable and non-widenable guards...