Alexander Viand

Results 36 issues of Alexander Viand

fhe::Multiply::fold (x,1) -> x does not apply to arith.constant

good first issue

As the title says. We considered the Dilithium signature scheme and the Kyber KEM as initial "end-to-end" examples for `polynomial` and this lowering. While Dilithium shouldn't be an issue, Kyber's...

dialect: polynomial
newcomer project

The `ElementwiseToLinalg` pass in MLIR only supports operations where all operands are tensors and this requirement has been left in place for the `ElementwiseToAffine` pass. However, the reason that this...

dialect: polynomial

The (at the time of writing) most recent LLVM Integrate commit (497630d) fails to build due to an error in LLVM ([action output](https://github.com/google/heir/actions/runs/9881300266/job/27291789139)): ``` external/llvm-project/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp:18:10: fatal error: mlir/Dialect/EmitC/Transforms/TypeConversions.h: No such...

The current lowering only supports RLWECiphertexts and also implicitly assumes BGV-style encode/encrypt. Somewhat related to #882 (adding encrypt/encode lowerings to poly/etc for things other than BGV) Both probably require LWE...

dialect: lwe

We might want to eventually support "compressed" encryption, where instead using the whole random "a" polynomial, you just provide the seed for "a" and what PRNG to use. This gives...

dialect: lwe
newcomer project

This adds the following rewrite pattern: ```llvm %res = arith.select %c, %t, %f // turns into %ct = bgv.mul %c, %t %nc = bgv.negate %c // EDIT: actually a bug,...

dialect: bgv
dialect: secret

The fix for #839 conservatively marks region-bearing ops not handled by the analysis framework directly (i.e. no `RegionBranchOpInterface` trait) as "unknown" secretness (unless there's a secret operand, in which case...

dialect: secret

This a DRAFT to elicit design feedback on how we should handle RNS support in HEIR. Towards that goal, it simply *switches* most things to RNS (rather than supporting RNS...

While the existing PR on this is stalled due to bazel issues, it should be possible to enable them in the CMake build. Related PRs & Issues: * #421 *...

build