heir
heir copied to clipboard
A compiler for homomorphic encryption
Add a `Design` section to the documentation website with the following pages. The purpose of this would be to ramp up someone who already knows a decent amount of MLIR,...
On the side of gate-bootstrapped CGGI, we had a path where we fully unrolled all loops before running a circuit optimizer, and for large IRs that was infeasibly slow. We...
From the review on https://github.com/google/heir/pull/471 > In HECO, "left-over" insert/extract ops instead get mapped to the `combine` op which lets you merge two tensors. The `combine` op essentially models the...
While debugging https://github.com/google/heir/issues/578, it seemed to me that the buggy pattern `AlignRotations_RightAssociated_Inner_#InnerOp#_Outer_#OuterOp` (and its related LeftAssociated version) are not doing anything. It seems like they are no-ops, but we might...
Currently it matches against `(OpA (rotate...) (OpB (rotate...) (rotate...)))` and `(OpA (OpB (rotate...) (rotate...)) (rotate...))`, should it also handle `(OpA (OpB (rotate...) (rotate...)) (OpC (rotate...) (rotate...)))`
The gx-kernel HECO example ported from https://github.com/google/heir/pull/587 shows a shortcoming of the existing `insert-rotate` pass. Specifically, it anchors on binary operations that consume the result of extracting values from (1D)...
See TODO in LWEAttributes.td
One that showed up while writing https://github.com/google/heir/issues/273 is the parameters for the CGGI gadget, namely the base_log and num_levels parameters that define the gadget decomposition applied during bootstrapping, which impacts...