oxc/crates
overlookmotel 12a7607bac perf(codegen): inline Codegen::print_list (#5221)
Revert #5192 and add a comment that it's not a perf gain.

This was really surprising to me, but the benchmarks do demonstrate it.

Please see the benchmarks commit-by-commit on this PR. Adding `#[inline]` to the function does give +1% gain, but it's no better than it was before #5192. So I think preferable to just revert to the simpler original.

I think likely explanation is that the compiler is already performing this optimization itself. And if it does it itself, then it understands the code better, and can then make better decisions about inlining.

https://godbolt.org/z/xzhWWeMoe seems to demonstrate this - there are 2 calls to `Item::gen` in the generated assembly, so it has split the loop into 2.
2024-08-26 10:28:49 +00:00
..
oxc Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_allocator Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_ast fix(ast): serialize TSParenthesizedType with camelCase (#5199) 2024-08-25 22:58:04 +08:00
oxc_ast_macros Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_cfg Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_codegen perf(codegen): inline Codegen::print_list (#5221) 2024-08-26 10:28:49 +00:00
oxc_diagnostics fix(diagnostics): improve "file is too long to fit on the screen" (#5120) 2024-08-23 11:17:12 +00:00
oxc_index Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_isolated_declarations feat(ast,parser): add definite flag to AccessorProperty node (#5182) 2024-08-25 01:02:50 +00:00
oxc_language_server refactor(parser)!: remove builder pattern from Parser struct (#5000) 2024-08-20 07:40:25 +00:00
oxc_linter Release oxlint v0.9.0 (#5219) 2024-08-26 16:50:15 +08:00
oxc_macros chore(linter): update docs for declare_oxc_lint! (#4825) 2024-08-11 15:27:54 +00:00
oxc_mangler Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_minifier Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_module_lexer feat(module_lexer): distinguish for types-only imports and exports (#5184) 2024-08-25 18:22:44 +08:00
oxc_parser fix(parser): Span for invalid regex flags (#5225) 2024-08-26 10:24:47 +00:00
oxc_prettier refactor(parser)!: remove builder pattern from Parser struct (#5000) 2024-08-20 07:40:25 +00:00
oxc_regular_expression feat(regular_expression): Validate max quantifier value (#5218) 2024-08-26 07:11:04 +00:00
oxc_semantic fix(semantic): implicit return UpdateExpression in ArrowFunctionExpression does not as read reference (#5161) 2024-08-26 03:30:16 +00:00
oxc_sourcemap Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_span Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_syntax Release crates v0.25.0 (#5107) 2024-08-23 15:37:36 +08:00
oxc_transformer chore: bump rustc to v1.80.1 (#5211) 2024-08-26 13:11:29 +08:00
oxc_traverse feat(ast,parser): add definite flag to AccessorProperty node (#5182) 2024-08-25 01:02:50 +00:00
oxc_wasm refactor(wasm): add source_type for parser, replace class options with plain object (#5217) 2024-08-26 15:08:35 +08:00