`llvm::Error`s containing errors must be explicitly handled or an assert will be raised. With this change, `ol_impl_result_t` can accept and consume an `llvm::Error` for errors raised by PluginInterface that have multiple causes and other places now call `llvm::consumeError`. Note that there is currently no facility for PluginInterface to communicate exact error codes, but the constructor is designed in such a way that it can be easily added later. This MR is to convert a crash into an error code. A new test was added, however due to the aforementioned issue with error codes, it does not pass and instead is marked as a skip.
Offload New API
This directory contains the implementation of the experimental work-in-progress new API for Offload. It builds on top of the existing plugin implementations but provides a single level of abstraction suitable for runtimes for languages other than OpenMP to be built on top of.
See the API definition readme for implementation details.