* Ensure the ControlFlow dialect is registered in the context where needed and linked against (not sure where exactly this stems from)
* LLVM IR cttz and ctlz intrinsics moved from undef to poison and take an attribute instead of value now: https://reviews.llvm.org/D151692
* Function inliner extension is a promised interface: https://reviews.llvm.org/D120368
* New replaceOp added to Rewriter: https://reviews.llvm.org/D152814
---------
Co-authored-by: Martin Erhart <maerhart@outlook.com>
Adds a pass which does a simple `arith` to `comb` mapping. The intention of this pass is mainly to get code out of Handshake (and wherever else we do some ad-hoc, simple arith-to-comb mapping/HLS), thus allowing integration testing of DC flows (refresher: handshake-to-dc lowers handshake ops to a combination of `dc` and `arith`).
This **does not** intend to be the definitive lowering/HLS pass of `arith` operations (hence the name "map" instead of e.g. "lower"). See it more as a temporary pass to provide this kind of functionality until we have an operator library + library mapping pass.
Currently, this pass strictly does operation mapping. If needed, `index`-type conversion could also be moved to this pass (e.g. setting `index` type width as a parameter of the pass).