Skip to content

Conversation

@SimonEbner
Copy link
Contributor

Allow re-use of the arcilator library. Split up the large pipeline into finer grained stages and move into its own library.

populateHwModuleToArcPipeline is split into:

  • arcPreprocessingPipeline
  • arcConversionPipeline
  • arcOptimizationPipeline
  • arcStateLoweringPipeline and
  • arcStateAllocationPipeline

Flags to customize passes are moved from the binary into the corresponding pipeline options.

@SimonEbner
Copy link
Contributor Author

Hi. I'd be interested in using arcilator in a more modular fashion. Are you open to moving some of its pieces out of the binary into a library? Happy to re-arrange this if you think this should be organized differently.

@maerhart
Copy link
Member

maerhart commented Nov 8, 2025

Hi @SimonEbner, factoring it into individual pipelines is a very nice idea!

Can you put the pipeline implementation in include/Tools/arcilator and lib/Tools/arcilator instead of tools/arcilator directly?
It would also be nice to make them regular MLIR pipelines, i.e. options inherit from pipeline options and they can be registered. For example, see the RTG pipelines here: https://github.com/llvm/circt/blob/main/lib/Dialect/RTG/Transforms/RTGPassPipelines.cpp https://github.com/llvm/circt/blob/main/include/circt/Dialect/RTG/Transforms/RTGPassPipelines.h

Thanks!

@SimonEbner
Copy link
Contributor Author

Thanks! Updated accordingly.

@SimonEbner SimonEbner force-pushed the arcilator-pipelines branch 2 times, most recently from c2dac20 to 171315e Compare November 8, 2025 21:17
Copy link
Member

@maerhart maerhart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Thanks!

@SimonEbner
Copy link
Contributor Author

Thanks both. Updated and also fixed/updated the logic around populateArcToLLVMPipeline in arcilator.cpp

@SimonEbner SimonEbner force-pushed the arcilator-pipelines branch 2 times, most recently from 280c6b4 to c6f95bb Compare November 10, 2025 08:24
Allow re-use of the arcilator library. Split up the large pipeline into
finer grained stages and move into its own library.

populateHwModuleToArcPipeline is split into:
 - arcPreprocessingPipeline
 - arcConversionPipeline
 - arcOptimizationPipeline
 - arcStateLoweringPipeline and
 - arcStateAllocationPipeline
@jpienaar jpienaar merged commit 96c8086 into llvm:main Nov 13, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants