mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-11-01 16:31:11 +00:00
Implement Yul to LLVM IR compilation benchmarks (#407)
# Description Closes [#404](https://github.com/paritytech/revive/issues/404) Adds compilation time benchmarks for: * Parsing of Yul source code -> AST Object * Lowering of AST Object -> LLVM IR (unoptimized) The benchmarks can be run from the root via: ```sh # Run all benchmarks in the revive-yul crate (parsing + lowering) make bench-yul ``` HTML reports will be generated under `target/criterion`, and a summary of the results at [crates/yul/BENCHMARKS_PARSE_M4PRO.md](https://github.com/paritytech/revive/blob/lj/compilation-benchmarks-yul/crates/yul/BENCHMARKS_PARSE_M4PRO.md) and [crates/yul/BENCHMARKS_LOWER_M4PRO.md](https://github.com/paritytech/revive/blob/lj/compilation-benchmarks-yul/crates/yul/BENCHMARKS_LOWER_M4PRO.md) (currently from running on a Mac M4 Pro). --------- Co-authored-by: xermicus <cyrill@parity.io>
This commit is contained in:
1 parent
1e0cce0fa8
commit
0742227c5a
12 files changed
+425
-24
No files matched your search
@@ -256,6 +256,22 @@ impl<'ctx> Context<'ctx> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Initializes a new dummy LLVM context.
|
||||
///
|
||||
/// Omits the LLVM module initialization; use this only in tests and benchmarks.
|
||||
pub fn new_dummy(
|
||||
llvm: &'ctx inkwell::context::Context,
|
||||
optimizer_settings: OptimizerSettings,
|
||||
) -> Self {
|
||||
Self::new(
|
||||
llvm,
|
||||
llvm.create_module("dummy"),
|
||||
Optimizer::new(optimizer_settings),
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
)
|
||||
}
|
||||
|
||||
/// Builds the LLVM IR module, returning the build artifacts.
|
||||
pub fn build(
|
||||
self,
|
||||
|
||||
Reference in new issue
Block a user