diff --git a/lib/Pipelines/ArithmeticPipelineRegistration.cpp b/lib/Pipelines/ArithmeticPipelineRegistration.cpp index fa25069c42..83ec792067 100644 --- a/lib/Pipelines/ArithmeticPipelineRegistration.cpp +++ b/lib/Pipelines/ArithmeticPipelineRegistration.cpp @@ -475,6 +475,14 @@ BackendPipelineBuilder toOpenFhePipelineBuilder() { auto configureCryptoContextOptions = openfhe::ConfigureCryptoContextOptions{}; configureCryptoContextOptions.entryFunction = options.entryFunction; + configureCryptoContextOptions.mulDepth = options.mulDepth; + configureCryptoContextOptions.ringDim = options.ringDim; + configureCryptoContextOptions.batchSize = options.batchSize; + configureCryptoContextOptions.firstModSize = options.firstModSize; + configureCryptoContextOptions.scalingModSize = options.scalingModSize; + configureCryptoContextOptions.insecure = options.insecure; + configureCryptoContextOptions.scalingTechniqueFixedManual = + options.scalingTechniqueFixedManual; pm.addPass( openfhe::createConfigureCryptoContext(configureCryptoContextOptions)); diff --git a/lib/Pipelines/ArithmeticPipelineRegistration.h b/lib/Pipelines/ArithmeticPipelineRegistration.h index 3a8731ca93..199fd59321 100644 --- a/lib/Pipelines/ArithmeticPipelineRegistration.h +++ b/lib/Pipelines/ArithmeticPipelineRegistration.h @@ -134,6 +134,29 @@ struct BackendOptions : public PassPipelineOptions { llvm::cl::desc("Insert function calls to an externally-defined debug " "function (cf. --lwe-add-debug-port)"), llvm::cl::init(false)}; + PassOptions::Option mulDepth{ + *this, "mul-depth", llvm::cl::desc("Manually specify the mul depth"), + llvm::cl::init(0)}; + PassOptions::Option ringDim{ + *this, "ring-dim", llvm::cl::desc("Manually specify the ring dimension"), + llvm::cl::init(0)}; + PassOptions::Option batchSize{ + *this, "batch-size", llvm::cl::desc("Manually specify the batch size"), + llvm::cl::init(0)}; + PassOptions::Option firstModSize{ + *this, "first-mod-size", + llvm::cl::desc("Manually specify the first mod size"), llvm::cl::init(0)}; + PassOptions::Option scalingModSize{ + *this, "scaling-mod-size", + llvm::cl::desc("Manually specify the scaling mod size"), + llvm::cl::init(0)}; + PassOptions::Option insecure{ + *this, "insecure", llvm::cl::desc("Whether to use insecure parameter"), + llvm::cl::init(false)}; + PassOptions::Option scalingTechniqueFixedManual{ + *this, "scaling-technique-fixed-manual", + llvm::cl::desc("Whether to use fixed manual scaling technique"), + llvm::cl::init(false)}; }; using RLWEPipelineBuilder =