From 4c3c6708bd26269b995fa0421aece95a05fed8f1 Mon Sep 17 00:00:00 2001 From: Sprite Date: Thu, 30 Nov 2023 09:45:10 +0100 Subject: [PATCH 1/3] [binder] Update firtool-lib C-API to allow the creation of multiple options --- binder/includeConstants.txt | 44 ++- binder/includeFunctions.txt | 140 +++---- binder/includeStructs.txt | 2 +- binder/src/main/scala/PanamaCIRCT.scala | 362 ++++++++---------- .../src/main/scala/PanamaCIRCTConverter.scala | 12 +- 5 files changed, 233 insertions(+), 327 deletions(-) diff --git a/binder/includeConstants.txt b/binder/includeConstants.txt index b72808d1b3f..1fa1318296e 100644 --- a/binder/includeConstants.txt +++ b/binder/includeConstants.txt @@ -16,24 +16,26 @@ FIRRTL_MEM_DIR_INFER FIRRTL_MEM_DIR_READ FIRRTL_MEM_DIR_WRITE FIRRTL_MEM_DIR_READ_WRITE -# enum FirtoolPreserveAggregateMode -FIRTOOL_PRESERVE_AGGREGATE_MODE_NONE -FIRTOOL_PRESERVE_AGGREGATE_MODE_ONE_DIM_VEC -FIRTOOL_PRESERVE_AGGREGATE_MODE_VEC -FIRTOOL_PRESERVE_AGGREGATE_MODE_ALL -# enum FirtoolPreserveValuesMode -FIRTOOL_PRESERVE_VALUES_MODE_NONE -FIRTOOL_PRESERVE_VALUES_MODE_NAMED -FIRTOOL_PRESERVE_VALUES_MODE_ALL -# enum FirtoolBuildMode -FIRTOOL_BUILD_MODE_DEBUG -FIRTOOL_BUILD_MODE_RELEASE -# enum FirtoolRandomKind -FIRTOOL_RANDOM_KIND_NONE -FIRTOOL_RANDOM_KIND_MEM -FIRTOOL_RANDOM_KIND_REG -FIRTOOL_RANDOM_KIND_ALL -# enum FirtoolCompanionMode -FIRTOOL_COMPANION_MODE_BIND -FIRTOOL_COMPANION_MODE_INSTANTIATE -FIRTOOL_COMPANION_MODE_DROP +# enum CirctFirtoolPreserveAggregateMode +CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_NONE +CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ONE_DIM_VEC +CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_VEC +CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ALL +# enum CirctFirtoolPreserveValuesMode +CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_STRIP +CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NONE +CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NAMED +CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_ALL +# enum CirctFirtoolBuildMode +CIRCT_FIRTOOL_BUILD_MODE_DEFAULT +CIRCT_FIRTOOL_BUILD_MODE_DEBUG +CIRCT_FIRTOOL_BUILD_MODE_RELEASE +# enum CirctFirtoolRandomKind +CIRCT_FIRTOOL_RANDOM_KIND_NONE +CIRCT_FIRTOOL_RANDOM_KIND_MEM +CIRCT_FIRTOOL_RANDOM_KIND_REG +CIRCT_FIRTOOL_RANDOM_KIND_ALL +# enum CirctFirtoolCompanionMode +CIRCT_FIRTOOL_COMPANION_MODE_BIND +CIRCT_FIRTOOL_COMPANION_MODE_INSTANTIATE +CIRCT_FIRTOOL_COMPANION_MODE_DROP diff --git a/binder/includeFunctions.txt b/binder/includeFunctions.txt index b87fdc3705b..bb4bcdfa25a 100644 --- a/binder/includeFunctions.txt +++ b/binder/includeFunctions.txt @@ -80,93 +80,55 @@ firrtlAttrGetMemDir chirrtlTypeGetCMemory chirrtlTypeGetCMemoryPort -# firtoolOptions -firtoolOptionsCreateDefault -firtoolOptionsDestroy -firtoolOptionsSetOutputFilename -firtoolOptionsGetOutputFilename -firtoolOptionsSetDisableAnnotationsUnknown -firtoolOptionsGetDisableAnnotationsUnknown -firtoolOptionsSetDisableAnnotationsClassless -firtoolOptionsGetDisableAnnotationsClassless -firtoolOptionsSetLowerAnnotationsNoRefTypePorts -firtoolOptionsGetLowerAnnotationsNoRefTypePorts -firtoolOptionsSetPreserveAggregate -firtoolOptionsGetPreserveAggregate -firtoolOptionsSetPreserveValues -firtoolOptionsGetPreserveValues -firtoolOptionsSetBuildMode -firtoolOptionsGetBuildMode -firtoolOptionsSetDisableOptimization -firtoolOptionsGetDisableOptimization -firtoolOptionsSetExportChiselInterface -firtoolOptionsGetExportChiselInterface -firtoolOptionsSetChiselInterfaceOutDirectory -firtoolOptionsGetChiselInterfaceOutDirectory -firtoolOptionsSetVbToBv -firtoolOptionsGetVbToBv -firtoolOptionsSetCompanionMode -firtoolOptionsGetCompanionMode -firtoolOptionsSetDisableAggressiveMergeConnections -firtoolOptionsGetDisableAggressiveMergeConnections -firtoolOptionsSetEmitOMIR -firtoolOptionsGetEmitOMIR -firtoolOptionsSetOMIROutFile -firtoolOptionsGetOMIROutFile -firtoolOptionsSetLowerMemories -firtoolOptionsGetLowerMemories -firtoolOptionsSetBlackBoxRootPath -firtoolOptionsGetBlackBoxRootPath -firtoolOptionsSetReplSeqMem -firtoolOptionsGetReplSeqMem -firtoolOptionsSetReplSeqMemFile -firtoolOptionsGetReplSeqMemFile -firtoolOptionsSetExtractTestCode -firtoolOptionsGetExtractTestCode -firtoolOptionsSetIgnoreReadEnableMem -firtoolOptionsGetIgnoreReadEnableMem -firtoolOptionsSetDisableRandom -firtoolOptionsGetDisableRandom -firtoolOptionsSetOutputAnnotationFilename -firtoolOptionsGetOutputAnnotationFilename -firtoolOptionsSetEnableAnnotationWarning -firtoolOptionsGetEnableAnnotationWarning -firtoolOptionsSetAddMuxPragmas -firtoolOptionsGetAddMuxPragmas -firtoolOptionsSetEmitChiselAssertsAsSVA -firtoolOptionsGetEmitChiselAssertsAsSVA -firtoolOptionsSetEmitSeparateAlwaysBlocks -firtoolOptionsGetEmitSeparateAlwaysBlocks -firtoolOptionsSetEtcDisableInstanceExtraction -firtoolOptionsGetEtcDisableInstanceExtraction -firtoolOptionsSetEtcDisableRegisterExtraction -firtoolOptionsGetEtcDisableRegisterExtraction -firtoolOptionsSetEtcDisableModuleInlining -firtoolOptionsGetEtcDisableModuleInlining -firtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround -firtoolOptionsGetAddVivadoRAMAddressConflictSynthesisBugWorkaround -firtoolOptionsSetCkgModuleName -firtoolOptionsGetCkgModuleName -firtoolOptionsSetCkgInputName -firtoolOptionsGetCkgInputName -firtoolOptionsSetCkgOutputName -firtoolOptionsGetCkgOutputName -firtoolOptionsSetCkgEnableName -firtoolOptionsGetCkgEnableName -firtoolOptionsSetCkgTestEnableName -firtoolOptionsGetCkgTestEnableName -firtoolOptionsSetExportModuleHierarchy -firtoolOptionsGetExportModuleHierarchy -firtoolOptionsSetStripFirDebugInfo -firtoolOptionsGetStripFirDebugInfo -firtoolOptionsSetStripDebugInfo -firtoolOptionsGetStripDebugInfo +# circtFirtoolOptions +circtFirtoolOptionsCreateDefault +circtFirtoolOptionsDestroy +circtFirtoolOptionsSetOutputFilename +circtFirtoolOptionsSetDisableUnknownAnnotations +circtFirtoolOptionsSetDisableAnnotationsClassless +circtFirtoolOptionsSetLowerAnnotationsNoRefTypePorts +circtFirtoolOptionsSetPreserveAggregate +circtFirtoolOptionsSetPreserveValues +circtFirtoolOptionsSetBuildMode +circtFirtoolOptionsSetDisableOptimization +circtFirtoolOptionsSetExportChiselInterface +circtFirtoolOptionsSetChiselInterfaceOutDirectory +circtFirtoolOptionsSetVbToBv +circtFirtoolOptionsSetNoDedup +circtFirtoolOptionsSetCompanionMode +circtFirtoolOptionsSetDisableAggressiveMergeConnections +circtFirtoolOptionsSetEmitOmir +circtFirtoolOptionsSetOmirOutFile +circtFirtoolOptionsSetLowerMemories +circtFirtoolOptionsSetBlackBoxRootPath +circtFirtoolOptionsSetReplSeqMem +circtFirtoolOptionsSetReplSeqMemFile +circtFirtoolOptionsSetExtractTestCode +circtFirtoolOptionsSetIgnoreReadEnableMem +circtFirtoolOptionsSetDisableRandom +circtFirtoolOptionsSetOutputAnnotationFilename +circtFirtoolOptionsSetEnableAnnotationWarning +circtFirtoolOptionsSetAddMuxPragmas +circtFirtoolOptionsSetEmitChiselAssertsAsSVA +circtFirtoolOptionsSetEmitSeparateAlwaysBlocks +circtFirtoolOptionsSetEtcDisableInstanceExtraction +circtFirtoolOptionsSetEtcDisableRegisterExtraction +circtFirtoolOptionsSetEtcDisableModuleInlining +circtFirtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround +circtFirtoolOptionsSetCkgModuleName +circtFirtoolOptionsSetCkgInputName +circtFirtoolOptionsSetCkgOutputName +circtFirtoolOptionsSetCkgEnableName +circtFirtoolOptionsSetCkgTestEnableName +circtFirtoolOptionsSetExportModuleHierarchy +circtFirtoolOptionsSetStripFirDebugInfo +circtFirtoolOptionsSetStripDebugInfo -# populate functions -firtoolPopulatePreprocessTransforms -firtoolPopulateCHIRRTLToLowFIRRTL -firtoolPopulateLowFIRRTLToHW -firtoolPopulateHWToSV -firtoolPopulateExportVerilog -firtoolPopulateExportSplitVerilog -firtoolPopulateFinalizeIR +# circtFirtoolPopulate functions +circtFirtoolPopulatePreprocessTransforms +circtFirtoolPopulateCHIRRTLToLowFIRRTL +circtFirtoolPopulateLowFIRRTLToHW +circtFirtoolPopulateHWToSV +circtFirtoolPopulateExportVerilog +circtFirtoolPopulateExportSplitVerilog +circtFirtoolPopulateFinalizeIR diff --git a/binder/includeStructs.txt b/binder/includeStructs.txt index eb92de794ed..9fb5d8dabbd 100644 --- a/binder/includeStructs.txt +++ b/binder/includeStructs.txt @@ -17,4 +17,4 @@ MlirOpPassManager MlirPass MlirLogicalResult FIRRTLBundleField -FirtoolOptions +CirctFirtoolFirtoolOptions diff --git a/binder/src/main/scala/PanamaCIRCT.scala b/binder/src/main/scala/PanamaCIRCT.scala index a3c78980b8e..eb70f996c6b 100644 --- a/binder/src/main/scala/PanamaCIRCT.scala +++ b/binder/src/main/scala/PanamaCIRCT.scala @@ -219,196 +219,130 @@ class PanamaCIRCT { CAPI.mlirOpPassManagerGetNestedUnder(arena, pm.get, newString(operationName).get) ) - def firtoolOptionsCreateDefault() = FirtoolOptions(CAPI.firtoolOptionsCreateDefault(arena)) - def firtoolOptionsDestroy(options: FirtoolOptions) = CAPI.firtoolOptionsDestroy(options.get) - def firtoolOptionsSetOutputFilename(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetOutputFilename(options.get, newString(value).get) - def firtoolOptionsGetOutputFilename(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetOutputFilename(arena, options.get)).toString - def firtoolOptionsSetDisableAnnotationsUnknown(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetDisableAnnotationsUnknown(options.get, value) - def firtoolOptionsGetDisableAnnotationsUnknown(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetDisableAnnotationsUnknown(options.get) - def firtoolOptionsSetDisableAnnotationsClassless(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetDisableAnnotationsClassless(options.get, value) - def firtoolOptionsGetDisableAnnotationsClassless(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetDisableAnnotationsClassless(options.get) - def firtoolOptionsSetLowerAnnotationsNoRefTypePorts(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetLowerAnnotationsNoRefTypePorts(options.get, value) - def firtoolOptionsGetLowerAnnotationsNoRefTypePorts(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetLowerAnnotationsNoRefTypePorts(options.get) - def firtoolOptionsSetPreserveAggregate(options: FirtoolOptions, value: FirtoolPreserveAggregateMode) = - CAPI.firtoolOptionsSetPreserveAggregate(options.get, value.get) - def firtoolOptionsGetPreserveAggregate(options: FirtoolOptions) = new FirtoolPreserveAggregateMode( - CAPI.firtoolOptionsGetPreserveAggregate(options.get) - ) - def firtoolOptionsSetPreserveValues(options: FirtoolOptions, value: FirtoolPreserveValuesMode) = - CAPI.firtoolOptionsSetPreserveValues(options.get, value.get) - def firtoolOptionsGetPreserveValues(options: FirtoolOptions) = new FirtoolPreserveValuesMode( - CAPI.firtoolOptionsGetPreserveValues(options.get) - ) - def firtoolOptionsSetBuildMode(options: FirtoolOptions, value: FirtoolBuildMode) = - CAPI.firtoolOptionsSetBuildMode(options.get, value.get) - def firtoolOptionsGetBuildMode(options: FirtoolOptions) = new FirtoolBuildMode( - CAPI.firtoolOptionsGetBuildMode(options.get) - ) - def firtoolOptionsSetDisableOptimization(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetDisableOptimization(options.get, value) - def firtoolOptionsGetDisableOptimization(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetDisableOptimization(options.get) - def firtoolOptionsSetExportChiselInterface(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetExportChiselInterface(options.get, value) - def firtoolOptionsGetExportChiselInterface(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetExportChiselInterface(options.get) - def firtoolOptionsSetChiselInterfaceOutDirectory(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetChiselInterfaceOutDirectory(options.get, newString(value).get) - def firtoolOptionsGetChiselInterfaceOutDirectory(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetChiselInterfaceOutDirectory(arena, options.get)).toString - def firtoolOptionsSetVbToBv(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetVbToBv(options.get, value) - def firtoolOptionsGetVbToBv(options: FirtoolOptions): Boolean = CAPI.firtoolOptionsGetVbToBv(options.get) - def firtoolOptionsSetCompanionMode(options: FirtoolOptions, value: FirtoolCompanionMode) = - CAPI.firtoolOptionsSetCompanionMode(options.get, value.get) - def firtoolOptionsGetCompanionMode(options: FirtoolOptions) = CAPI.firtoolOptionsGetCompanionMode(options.get) - def firtoolOptionsSetDisableAggressiveMergeConnections(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetDisableAggressiveMergeConnections(options.get, value) - def firtoolOptionsGetDisableAggressiveMergeConnections(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetDisableAggressiveMergeConnections(options.get) - def firtoolOptionsSetEmitOMIR(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetEmitOMIR(options.get, value) - def firtoolOptionsGetEmitOMIR(options: FirtoolOptions): Boolean = CAPI.firtoolOptionsGetEmitOMIR(options.get) - def firtoolOptionsSetOMIROutFile(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetOMIROutFile(options.get, newString(value).get) - def firtoolOptionsGetOMIROutFile(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetOMIROutFile(arena, options.get)).toString - def firtoolOptionsSetLowerMemories(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetLowerMemories(options.get, value) - def firtoolOptionsGetLowerMemories(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetLowerMemories(options.get) - def firtoolOptionsSetBlackBoxRootPath(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetBlackBoxRootPath(options.get, newString(value).get) - def firtoolOptionsGetBlackBoxRootPath(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetBlackBoxRootPath(arena, options.get)).toString - def firtoolOptionsSetReplSeqMem(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetReplSeqMem(options.get, value) - def firtoolOptionsGetReplSeqMem(options: FirtoolOptions): Boolean = CAPI.firtoolOptionsGetReplSeqMem(options.get) - def firtoolOptionsSetReplSeqMemFile(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetReplSeqMemFile(options.get, newString(value).get) - def firtoolOptionsGetReplSeqMemFile(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetReplSeqMemFile(arena, options.get)).toString - def firtoolOptionsSetExtractTestCode(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetExtractTestCode(options.get, value) - def firtoolOptionsGetExtractTestCode(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetExtractTestCode(options.get) - def firtoolOptionsSetIgnoreReadEnableMem(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetIgnoreReadEnableMem(options.get, value) - def firtoolOptionsGetIgnoreReadEnableMem(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetIgnoreReadEnableMem(options.get) - def firtoolOptionsSetDisableRandom(options: FirtoolOptions, value: FirtoolRandomKind) = - CAPI.firtoolOptionsSetDisableRandom(options.get, value.get) - def firtoolOptionsGetDisableRandom(options: FirtoolOptions) = new FirtoolRandomKind( - CAPI.firtoolOptionsGetDisableRandom(options.get) - ) - def firtoolOptionsSetOutputAnnotationFilename(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetOutputAnnotationFilename(options.get, newString(value).get) - def firtoolOptionsGetOutputAnnotationFilename(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetOutputAnnotationFilename(arena, options.get)).toString - def firtoolOptionsSetEnableAnnotationWarning(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetEnableAnnotationWarning(options.get, value) - def firtoolOptionsGetEnableAnnotationWarning(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetEnableAnnotationWarning(options.get) - def firtoolOptionsSetAddMuxPragmas(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetAddMuxPragmas(options.get, value) - def firtoolOptionsGetAddMuxPragmas(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetAddMuxPragmas(options.get) - def firtoolOptionsSetEmitChiselAssertsAsSVA(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetEmitChiselAssertsAsSVA(options.get, value) - def firtoolOptionsGetEmitChiselAssertsAsSVA(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetEmitChiselAssertsAsSVA(options.get) - def firtoolOptionsSetEmitSeparateAlwaysBlocks(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetEmitSeparateAlwaysBlocks(options.get, value) - def firtoolOptionsGetEmitSeparateAlwaysBlocks(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetEmitSeparateAlwaysBlocks(options.get) - def firtoolOptionsSetEtcDisableInstanceExtraction(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetEtcDisableInstanceExtraction(options.get, value) - def firtoolOptionsGetEtcDisableInstanceExtraction(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetEtcDisableInstanceExtraction(options.get) - def firtoolOptionsSetEtcDisableRegisterExtraction(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetEtcDisableRegisterExtraction(options.get, value) - def firtoolOptionsGetEtcDisableRegisterExtraction(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetEtcDisableRegisterExtraction(options.get) - def firtoolOptionsSetEtcDisableModuleInlining(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetEtcDisableModuleInlining(options.get, value) - def firtoolOptionsGetEtcDisableModuleInlining(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetEtcDisableModuleInlining(options.get) - def firtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround(options.get, value) - def firtoolOptionsGetAddVivadoRAMAddressConflictSynthesisBugWorkaround(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetAddVivadoRAMAddressConflictSynthesisBugWorkaround(options.get) - def firtoolOptionsSetCkgModuleName(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetCkgModuleName(options.get, newString(value).get) - def firtoolOptionsGetCkgModuleName(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetCkgModuleName(arena, options.get)).toString - def firtoolOptionsSetCkgInputName(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetCkgInputName(options.get, newString(value).get) - def firtoolOptionsGetCkgInputName(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetCkgInputName(arena, options.get)).toString - def firtoolOptionsSetCkgOutputName(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetCkgOutputName(options.get, newString(value).get) - def firtoolOptionsGetCkgOutputName(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetCkgOutputName(arena, options.get)).toString - def firtoolOptionsSetCkgEnableName(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetCkgEnableName(options.get, newString(value).get) - def firtoolOptionsGetCkgEnableName(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetCkgEnableName(arena, options.get)).toString - def firtoolOptionsSetCkgTestEnableName(options: FirtoolOptions, value: String) = - CAPI.firtoolOptionsSetCkgTestEnableName(options.get, newString(value).get) - def firtoolOptionsGetCkgTestEnableName(options: FirtoolOptions): String = - (CAPI.firtoolOptionsGetCkgTestEnableName(arena, options.get)).toString - def firtoolOptionsSetExportModuleHierarchy(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetExportModuleHierarchy(options.get, value) - def firtoolOptionsGetExportModuleHierarchy(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetExportModuleHierarchy(options.get) - def firtoolOptionsSetStripFirDebugInfo(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetStripFirDebugInfo(options.get, value) - def firtoolOptionsGetStripFirDebugInfo(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetStripFirDebugInfo(options.get) - def firtoolOptionsSetStripDebugInfo(options: FirtoolOptions, value: Boolean) = - CAPI.firtoolOptionsSetStripDebugInfo(options.get, value) - def firtoolOptionsGetStripDebugInfo(options: FirtoolOptions): Boolean = - CAPI.firtoolOptionsGetStripDebugInfo(options.get) - - def firtoolPopulatePreprocessTransforms(pm: MlirPassManager, options: FirtoolOptions) = MlirLogicalResult( - CAPI.firtoolPopulatePreprocessTransforms(arena, pm.get, options.get) - ) + def circtFirtoolOptionsCreateDefault() = CirctFirtoolFirtoolOptions(CAPI.circtFirtoolOptionsCreateDefault(arena)) + def circtFirtoolOptionsDestroy(options: CirctFirtoolFirtoolOptions) = CAPI.circtFirtoolOptionsDestroy(options.get) + def circtFirtoolOptionsSetOutputFilename(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetOutputFilename(options.get, newString(value).get) + def circtFirtoolOptionsSetDisableUnknownAnnotations(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetDisableUnknownAnnotations(options.get, value) + def circtFirtoolOptionsSetDisableAnnotationsClassless(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetDisableAnnotationsClassless(options.get, value) + def circtFirtoolOptionsSetLowerAnnotationsNoRefTypePorts(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetLowerAnnotationsNoRefTypePorts(options.get, value) + def circtFirtoolOptionsSetPreserveAggregate( + options: CirctFirtoolFirtoolOptions, + value: CirctFirtoolPreserveAggregateMode + ) = CAPI.circtFirtoolOptionsSetPreserveAggregate(options.get, value.get) + def circtFirtoolOptionsSetPreserveValues(options: CirctFirtoolFirtoolOptions, value: CirctFirtoolPreserveValuesMode) = + CAPI.circtFirtoolOptionsSetPreserveValues(options.get, value.get) + def circtFirtoolOptionsSetBuildMode(options: CirctFirtoolFirtoolOptions, value: CirctFirtoolBuildMode) = + CAPI.circtFirtoolOptionsSetBuildMode(options.get, value.get) + def circtFirtoolOptionsSetDisableOptimization(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetDisableOptimization(options.get, value) + def circtFirtoolOptionsSetExportChiselInterface(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetExportChiselInterface(options.get, value) + def circtFirtoolOptionsSetChiselInterfaceOutDirectory(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetChiselInterfaceOutDirectory(options.get, newString(value).get) + def circtFirtoolOptionsSetVbToBv(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetVbToBv(options.get, value) + def circtFirtoolOptionsSetNoDedup(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetNoDedup(options.get, value) + def circtFirtoolOptionsSetCompanionMode(options: CirctFirtoolFirtoolOptions, value: CirctFirtoolCompanionMode) = + CAPI.circtFirtoolOptionsSetCompanionMode(options.get, value.get) + def circtFirtoolOptionsSetDisableAggressiveMergeConnections(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetDisableAggressiveMergeConnections(options.get, value) + def circtFirtoolOptionsSetEmitOmir(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetEmitOmir(options.get, value) + def circtFirtoolOptionsSetOmirOutFile(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetOmirOutFile(options.get, newString(value).get) + def circtFirtoolOptionsSetLowerMemories(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetLowerMemories(options.get, value) + def circtFirtoolOptionsSetBlackBoxRootPath(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetBlackBoxRootPath(options.get, newString(value).get) + def circtFirtoolOptionsSetReplSeqMem(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetReplSeqMem(options.get, value) + def circtFirtoolOptionsSetReplSeqMemFile(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetReplSeqMemFile(options.get, newString(value).get) + def circtFirtoolOptionsSetExtractTestCode(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetExtractTestCode(options.get, value) + def circtFirtoolOptionsSetIgnoreReadEnableMem(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetIgnoreReadEnableMem(options.get, value) + def circtFirtoolOptionsSetDisableRandom(options: CirctFirtoolFirtoolOptions, value: CirctFirtoolRandomKind) = + CAPI.circtFirtoolOptionsSetDisableRandom(options.get, value.get) + def circtFirtoolOptionsSetOutputAnnotationFilename(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetOutputAnnotationFilename(options.get, newString(value).get) + def circtFirtoolOptionsSetEnableAnnotationWarning(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetEnableAnnotationWarning(options.get, value) + def circtFirtoolOptionsSetAddMuxPragmas(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetAddMuxPragmas(options.get, value) + def circtFirtoolOptionsSetEmitChiselAssertsAsSVA(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetEmitChiselAssertsAsSVA(options.get, value) + def circtFirtoolOptionsSetEmitSeparateAlwaysBlocks(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetEmitSeparateAlwaysBlocks(options.get, value) + def circtFirtoolOptionsSetEtcDisableInstanceExtraction(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetEtcDisableInstanceExtraction(options.get, value) + def circtFirtoolOptionsSetEtcDisableRegisterExtraction(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetEtcDisableRegisterExtraction(options.get, value) + def circtFirtoolOptionsSetEtcDisableModuleInlining(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetEtcDisableModuleInlining(options.get, value) + def circtFirtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround( + options: CirctFirtoolFirtoolOptions, + value: Boolean + ) = CAPI.circtFirtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround(options.get, value) + def circtFirtoolOptionsSetCkgModuleName(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetCkgModuleName(options.get, newString(value).get) + def circtFirtoolOptionsSetCkgInputName(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetCkgInputName(options.get, newString(value).get) + def circtFirtoolOptionsSetCkgOutputName(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetCkgOutputName(options.get, newString(value).get) + def circtFirtoolOptionsSetCkgEnableName(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetCkgEnableName(options.get, newString(value).get) + def circtFirtoolOptionsSetCkgTestEnableName(options: CirctFirtoolFirtoolOptions, value: String) = + CAPI.circtFirtoolOptionsSetCkgTestEnableName(options.get, newString(value).get) + def circtFirtoolOptionsSetExportModuleHierarchy(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetExportModuleHierarchy(options.get, value) + def circtFirtoolOptionsSetStripFirDebugInfo(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetStripFirDebugInfo(options.get, value) + def circtFirtoolOptionsSetStripDebugInfo(options: CirctFirtoolFirtoolOptions, value: Boolean) = + CAPI.circtFirtoolOptionsSetStripDebugInfo(options.get, value) + + def circtFirtoolPopulatePreprocessTransforms(pm: MlirPassManager, options: CirctFirtoolFirtoolOptions) = + MlirLogicalResult( + CAPI.circtFirtoolPopulatePreprocessTransforms(arena, pm.get, options.get) + ) - def firtoolPopulateCHIRRTLToLowFIRRTL( + def circtFirtoolPopulateCHIRRTLToLowFIRRTL( pm: MlirPassManager, - options: FirtoolOptions, + options: CirctFirtoolFirtoolOptions, module: MlirModule, inputFilename: String - ) = - MlirLogicalResult( - CAPI.firtoolPopulateCHIRRTLToLowFIRRTL(arena, pm.get, options.get, newString(inputFilename).get) - ) + ) = MlirLogicalResult( + CAPI.circtFirtoolPopulateCHIRRTLToLowFIRRTL(arena, pm.get, options.get, newString(inputFilename).get) + ) - def firtoolPopulateLowFIRRTLToHW(pm: MlirPassManager, options: FirtoolOptions) = MlirLogicalResult( - CAPI.firtoolPopulateLowFIRRTLToHW(arena, pm.get, options.get) + def circtFirtoolPopulateLowFIRRTLToHW(pm: MlirPassManager, options: CirctFirtoolFirtoolOptions) = MlirLogicalResult( + CAPI.circtFirtoolPopulateLowFIRRTLToHW(arena, pm.get, options.get) ) - def firtoolPopulateHWToSV(pm: MlirPassManager, options: FirtoolOptions) = MlirLogicalResult( - CAPI.firtoolPopulateHWToSV(arena, pm.get, options.get) + def circtFirtoolPopulateHWToSV(pm: MlirPassManager, options: CirctFirtoolFirtoolOptions) = MlirLogicalResult( + CAPI.circtFirtoolPopulateHWToSV(arena, pm.get, options.get) ) - def firtoolPopulateExportVerilog(pm: MlirPassManager, options: FirtoolOptions, callback: String => Unit) = - MlirLogicalResult( - CAPI.firtoolPopulateExportVerilog(arena, pm.get, options.get, newStringCallback(callback).get, NULL) - ) + def circtFirtoolPopulateExportVerilog( + pm: MlirPassManager, + options: CirctFirtoolFirtoolOptions, + callback: String => Unit + ) = MlirLogicalResult( + CAPI.circtFirtoolPopulateExportVerilog(arena, pm.get, options.get, newStringCallback(callback).get, NULL) + ) - def firtoolPopulateExportSplitVerilog(pm: MlirPassManager, options: FirtoolOptions, directory: String) = - MlirLogicalResult( - CAPI.firtoolPopulateExportSplitVerilog(arena, pm.get, options.get, newString(directory).get) - ) + def circtFirtoolPopulateExportSplitVerilog( + pm: MlirPassManager, + options: CirctFirtoolFirtoolOptions, + directory: String + ) = MlirLogicalResult( + CAPI.circtFirtoolPopulateExportSplitVerilog(arena, pm.get, options.get, newString(directory).get) + ) def mlirLogicalResultIsSuccess(res: MlirLogicalResult): Boolean = circt.MlirLogicalResult.value$get(res.get) != 0 @@ -625,12 +559,12 @@ object MlirPass { final case class FIRRTLBundleField(name: String, isFlip: Boolean, tpe: MlirType) -final case class FirtoolOptions(ptr: MemorySegment) extends ForeignType[MemorySegment] { +final case class CirctFirtoolFirtoolOptions(ptr: MemorySegment) extends ForeignType[MemorySegment] { private[circt] def get = ptr - private[circt] val sizeof = circt.FirtoolOptions.sizeof().toInt + private[circt] val sizeof = circt.CirctFirtoolFirtoolOptions.sizeof().toInt } -object FirtoolOptions { - private[circt] def apply(ptr: MemorySegment) = new FirtoolOptions(ptr) +object CirctFirtoolFirtoolOptions { + private[circt] def apply(ptr: MemorySegment) = new CirctFirtoolFirtoolOptions(ptr) } // @@ -685,54 +619,62 @@ object FIRRTLMemDir { final case object ReadWrite extends FIRRTLMemDir(value = CAPI.FIRRTL_MEM_DIR_READ_WRITE()) } -sealed class FirtoolPreserveAggregateMode(val value: Int) extends ForeignType[Int] { +sealed class CirctFirtoolPreserveAggregateMode(val value: Int) extends ForeignType[Int] { private[circt] def get = value private[circt] val sizeof = 4 // FIXME: jextract doesn't export type for C enum } -object FirtoolPreserveAggregateMode { - final case object None extends FirtoolPreserveAggregateMode(value = CAPI.FIRTOOL_PRESERVE_AGGREGATE_MODE_NONE()) +object CirctFirtoolPreserveAggregateMode { + final case object None + extends CirctFirtoolPreserveAggregateMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_NONE()) final case object OneDimVec - extends FirtoolPreserveAggregateMode(value = CAPI.FIRTOOL_PRESERVE_AGGREGATE_MODE_ONE_DIM_VEC()) - final case object Vec extends FirtoolPreserveAggregateMode(value = CAPI.FIRTOOL_PRESERVE_AGGREGATE_MODE_VEC()) - final case object All extends FirtoolPreserveAggregateMode(value = CAPI.FIRTOOL_PRESERVE_AGGREGATE_MODE_ALL()) + extends CirctFirtoolPreserveAggregateMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ONE_DIM_VEC()) + final case object Vec + extends CirctFirtoolPreserveAggregateMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_VEC()) + final case object All + extends CirctFirtoolPreserveAggregateMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ALL()) } -sealed class FirtoolPreserveValuesMode(val value: Int) extends ForeignType[Int] { +sealed class CirctFirtoolPreserveValuesMode(val value: Int) extends ForeignType[Int] { private[circt] def get = value private[circt] val sizeof = 4 // FIXME: jextract doesn't export type for C enum } -object FirtoolPreserveValuesMode { - final case object None extends FirtoolPreserveValuesMode(value = CAPI.FIRTOOL_PRESERVE_VALUES_MODE_NONE()) - final case object Named extends FirtoolPreserveValuesMode(value = CAPI.FIRTOOL_PRESERVE_VALUES_MODE_NAMED()) - final case object All extends FirtoolPreserveValuesMode(value = CAPI.FIRTOOL_PRESERVE_VALUES_MODE_ALL()) +object CirctFirtoolPreserveValuesMode { + final case object Strip + extends CirctFirtoolPreserveValuesMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_STRIP()) + final case object None extends CirctFirtoolPreserveValuesMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NONE()) + final case object Named + extends CirctFirtoolPreserveValuesMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NAMED()) + final case object All extends CirctFirtoolPreserveValuesMode(value = CAPI.CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_ALL()) } -sealed class FirtoolBuildMode(val value: Int) extends ForeignType[Int] { +sealed class CirctFirtoolBuildMode(val value: Int) extends ForeignType[Int] { private[circt] def get = value private[circt] val sizeof = 4 // FIXME: jextract doesn't export type for C enum } -object FirtoolBuildMode { - final case object Debug extends FirtoolBuildMode(value = CAPI.FIRTOOL_BUILD_MODE_DEBUG()) - final case object Release extends FirtoolBuildMode(value = CAPI.FIRTOOL_BUILD_MODE_RELEASE()) +object CirctFirtoolBuildMode { + final case object Default extends CirctFirtoolBuildMode(value = CAPI.CIRCT_FIRTOOL_BUILD_MODE_DEFAULT()) + final case object Debug extends CirctFirtoolBuildMode(value = CAPI.CIRCT_FIRTOOL_BUILD_MODE_DEBUG()) + final case object Release extends CirctFirtoolBuildMode(value = CAPI.CIRCT_FIRTOOL_BUILD_MODE_RELEASE()) } -sealed class FirtoolRandomKind(val value: Int) extends ForeignType[Int] { +sealed class CirctFirtoolRandomKind(val value: Int) extends ForeignType[Int] { private[circt] def get = value private[circt] val sizeof = 4 // FIXME: jextract doesn't export type for C enum } -object FirtoolRandomKind { - final case object None extends FirtoolRandomKind(value = CAPI.FIRTOOL_RANDOM_KIND_NONE()) - final case object Mem extends FirtoolRandomKind(value = CAPI.FIRTOOL_RANDOM_KIND_MEM()) - final case object Reg extends FirtoolRandomKind(value = CAPI.FIRTOOL_RANDOM_KIND_REG()) - final case object All extends FirtoolRandomKind(value = CAPI.FIRTOOL_RANDOM_KIND_ALL()) +object CirctFirtoolRandomKind { + final case object None extends CirctFirtoolRandomKind(value = CAPI.CIRCT_FIRTOOL_RANDOM_KIND_NONE()) + final case object Mem extends CirctFirtoolRandomKind(value = CAPI.CIRCT_FIRTOOL_RANDOM_KIND_MEM()) + final case object Reg extends CirctFirtoolRandomKind(value = CAPI.CIRCT_FIRTOOL_RANDOM_KIND_REG()) + final case object All extends CirctFirtoolRandomKind(value = CAPI.CIRCT_FIRTOOL_RANDOM_KIND_ALL()) } -sealed class FirtoolCompanionMode(val value: Int) extends ForeignType[Int] { +sealed class CirctFirtoolCompanionMode(val value: Int) extends ForeignType[Int] { private[circt] def get = value private[circt] val sizeof = 4 // FIXME: jextract doesn't export type for C enum } -object FirtoolCompanionMode { - final case object Bind extends FirtoolCompanionMode(value = CAPI.FIRTOOL_COMPANION_MODE_BIND()) - final case object Instantiate extends FirtoolCompanionMode(value = CAPI.FIRTOOL_COMPANION_MODE_INSTANTIATE()) - final case object Drop extends FirtoolCompanionMode(value = CAPI.FIRTOOL_COMPANION_MODE_DROP()) +object CirctFirtoolCompanionMode { + final case object Bind extends CirctFirtoolCompanionMode(value = CAPI.CIRCT_FIRTOOL_COMPANION_MODE_BIND()) + final case object Instantiate + extends CirctFirtoolCompanionMode(value = CAPI.CIRCT_FIRTOOL_COMPANION_MODE_INSTANTIATE()) + final case object Drop extends CirctFirtoolCompanionMode(value = CAPI.CIRCT_FIRTOOL_COMPANION_MODE_DROP()) } diff --git a/binder/src/main/scala/PanamaCIRCTConverter.scala b/binder/src/main/scala/PanamaCIRCTConverter.scala index b245830d441..668b77a4c12 100644 --- a/binder/src/main/scala/PanamaCIRCTConverter.scala +++ b/binder/src/main/scala/PanamaCIRCTConverter.scala @@ -494,12 +494,12 @@ class PanamaCIRCTConverter extends CIRCTConverter { } val pm = circt.mlirPassManagerCreate() - val options = circt.firtoolOptionsCreateDefault() - assertResult(circt.firtoolPopulatePreprocessTransforms(pm, options)) - assertResult(circt.firtoolPopulateCHIRRTLToLowFIRRTL(pm, options, mlirRootModule, "-")) - assertResult(circt.firtoolPopulateLowFIRRTLToHW(pm, options)) - assertResult(circt.firtoolPopulateHWToSV(pm, options)) - assertResult(circt.firtoolPopulateExportVerilog(pm, options, message => out.write(message.getBytes))) + val options = circt.circtFirtoolOptionsCreateDefault() + assertResult(circt.circtFirtoolPopulatePreprocessTransforms(pm, options)) + assertResult(circt.circtFirtoolPopulateCHIRRTLToLowFIRRTL(pm, options, mlirRootModule, "-")) + assertResult(circt.circtFirtoolPopulateLowFIRRTLToHW(pm, options)) + assertResult(circt.circtFirtoolPopulateHWToSV(pm, options)) + assertResult(circt.circtFirtoolPopulateExportVerilog(pm, options, message => out.write(message.getBytes))) assertResult(circt.mlirPassManagerRunOnOp(pm, circt.mlirModuleGetOperation(mlirRootModule))) } } From b66378207d04f2991933514db2f459c00ba49873 Mon Sep 17 00:00:00 2001 From: Sprite Date: Thu, 30 Nov 2023 10:02:47 +0100 Subject: [PATCH 2/3] [ci] bump circt/update-staging-branch to 1.2.0 --- .github/workflows/ci-circt-nightly.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-circt-nightly.yml b/.github/workflows/ci-circt-nightly.yml index 1184653e491..e5fd12920f5 100644 --- a/.github/workflows/ci-circt-nightly.yml +++ b/.github/workflows/ci-circt-nightly.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Update Staging Branch - uses: circt/update-staging-branch@v1.1.0 + uses: circt/update-staging-branch@v1.2.0 with: user: chiselbot email: chiselbot@users.noreply.github.com @@ -34,7 +34,7 @@ jobs: id: determine-branch shell: bash run: | - branch=$(git rev-parse --abbrev-ref HEAD) + branch=$(git rev-parse HEAD) echo branches=\[\"$branch\"\] >> $GITHUB_OUTPUT outputs: branches: ${{ steps.determine-branch.outputs.branches }} From b1af7157f81d0567b8fb4f30362eb854d41ae593 Mon Sep 17 00:00:00 2001 From: Schuyler Eldridge Date: Wed, 29 Nov 2023 10:50:42 -0500 Subject: [PATCH 3/3] [circt] Use new public-modules option Change a removed firtool option so that tests continue to work. Signed-off-by: Schuyler Eldridge --- src/main/scala/circt/stage/phases/CIRCT.scala | 2 +- src/test/scala/circtTests/ConventionSpec.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/circt/stage/phases/CIRCT.scala b/src/main/scala/circt/stage/phases/CIRCT.scala index fc0550732a1..86c9dd77ee5 100644 --- a/src/main/scala/circt/stage/phases/CIRCT.scala +++ b/src/main/scala/circt/stage/phases/CIRCT.scala @@ -216,7 +216,7 @@ class CIRCT extends Phase { case Some(PreserveAggregate.All) => Seq("-preserve-aggregate=all") case None => None }) ++ - circtOptions.preserveAggregate.map(_ => "-scalarize-top-module=0") ++ + circtOptions.preserveAggregate.map(_ => "-scalarize-public-modules=0") ++ includeDirs.flatMap(d => Seq("--include-dir", d.toString)) ++ /* Convert the target to a firtool-compatible option. */ ((circtOptions.target, split) match { diff --git a/src/test/scala/circtTests/ConventionSpec.scala b/src/test/scala/circtTests/ConventionSpec.scala index 104c49e2ff8..e9085a010c7 100644 --- a/src/test/scala/circtTests/ConventionSpec.scala +++ b/src/test/scala/circtTests/ConventionSpec.scala @@ -41,7 +41,7 @@ class ConventionSpec extends AnyFunSpec with Matchers { val options = Array( "--preserve-aggregate=all", "--strip-debug-info", - "--scalarize-top-module=false", + "--scalarize-public-modules=true", "--lowering-options=disallowPortDeclSharing" )