mirror of
https://github.com/zama-ai/concrete.git
synced 2026-04-17 03:00:54 -04:00
For now what it works are only levelled ops with user parameters. (take a look to the tests) Done: - Add parameters to the fhe parameters to support CRT-based large integers - Add command line options and tests options to allows the user to give those new parameters - Update the dialects and pipeline to handle new fhe parameters for CRT-based large integers - Update the client parameters and the client library to handle the CRT-based large integers Todo: - Plug the optimizer to compute the CRT-based large interger parameters - Plug the pbs for the CRT-based large integer
28 lines
770 B
C++
28 lines
770 B
C++
// Part of the Concrete Compiler Project, under the BSD3 License with Zama
|
|
// Exceptions. See
|
|
// https://github.com/zama-ai/concrete-compiler-internal/blob/main/LICENSE.txt
|
|
// for license information.
|
|
|
|
#ifndef CONCRETELANG_CONVERSION_FHETOTFHE_PASS_H_
|
|
#define CONCRETELANG_CONVERSION_FHETOTFHE_PASS_H_
|
|
|
|
#include "mlir/Pass/Pass.h"
|
|
|
|
namespace mlir {
|
|
namespace concretelang {
|
|
|
|
// ApplyLookupTableLowering indicates the strategy to lower an
|
|
// FHE.apply_loopup_table ops
|
|
enum ApplyLookupTableLowering {
|
|
KeySwitchBoostrapLowering,
|
|
WopPBSLowering,
|
|
};
|
|
|
|
/// Create a pass to convert `FHE` dialect to `TFHE` dialect.
|
|
std::unique_ptr<OperationPass<ModuleOp>>
|
|
createConvertFHEToTFHEPass(ApplyLookupTableLowering lower);
|
|
} // namespace concretelang
|
|
} // namespace mlir
|
|
|
|
#endif
|