Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(semantic): rename cfg macro to control_flow. #3742

Merged

Conversation

rzvxa
Copy link
Contributor

@rzvxa rzvxa commented Jun 18, 2024

As requested here #3737 (comment)

@github-actions github-actions bot added the A-semantic Area - Semantic label Jun 18, 2024
Copy link
Contributor Author

rzvxa commented Jun 18, 2024

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rzvxa and the rest of your teammates on Graphite Graphite

@rzvxa rzvxa requested a review from overlookmotel June 18, 2024 16:32
@rzvxa rzvxa marked this pull request as ready for review June 18, 2024 16:32
Copy link

graphite-app bot commented Jun 18, 2024

Your org has enabled the Graphite merge queue for merging into main

Add the label “merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix.

You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link.

Copy link

codspeed-hq bot commented Jun 18, 2024

CodSpeed Performance Report

Merging #3742 will not alter performance

Comparing 06-18-refactor_semantic_rename_cfg_macro_to_control_flow_ (7ec44f8) with main (4e9d8a5)

Summary

✅ 22 untouched benchmarks

@rzvxa
Copy link
Contributor Author

rzvxa commented Jun 18, 2024

CodSpeed Performance Report

Merging #3742 will improve performances by 9.97%

Comparing 06-18-refactor_semantic_rename_cfg_macro_to_control_flow_ (97b1bb0) with main (f1b793f)

Summary

⚡ 1 improvements ✅ 21 untouched benchmarks

Benchmarks breakdown

Benchmark main 06-18-refactor_semantic_rename_cfg_macro_to_control_flow_ Change
codegen_sourcemap[react.development.js] 2.2 ms 2 ms +9.97%

Branch prediction issues are coming through or does this benchmark just have a huge amount of tolerance?

@Boshen Boshen added the 0-merge Merge with Graphite Merge Queue label Jun 18, 2024
@Boshen
Copy link
Member

Boshen commented Jun 18, 2024

Too much variance coming from a small benchmark file, I'll look into it tomorrow.

Copy link

graphite-app bot commented Jun 18, 2024

Merge activity

  • Jun 18, 1:00 PM EDT: The merge label 'merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Jun 18, 1:01 PM EDT: Boshen added this pull request to the Graphite merge queue.
  • Jun 18, 1:05 PM EDT: Boshen merged this pull request with the Graphite merge queue.

@Boshen Boshen force-pushed the 06-18-refactor_semantic_rename_cfg_macro_to_control_flow_ branch from 97b1bb0 to 7ec44f8 Compare June 18, 2024 17:01
@graphite-app graphite-app bot merged commit 7ec44f8 into main Jun 18, 2024
22 checks passed
@graphite-app graphite-app bot deleted the 06-18-refactor_semantic_rename_cfg_macro_to_control_flow_ branch June 18, 2024 17:05
@github-actions github-actions bot mentioned this pull request Jun 18, 2024
Boshen added a commit that referenced this pull request Jun 18, 2024
## [0.15.0] - 2024-06-18

- 0537d29 cfg: [**BREAKING**] Move control flow to its own crate.
(#3728) (rzvxa)

- 5c38a0f codegen: [**BREAKING**] New code gen API (#3740) (Boshen)

- 4bce59d semantic/cfg: [**BREAKING**] Re-export `petgraph` as
`control_flow::graph`. (#3722) (rzvxa)

- 534242a codegen: [**BREAKING**] Remove
`CodegenOptions::enable_typescript` (#3674) (Boshen)

- 0578ece ast: [**BREAKING**] Remove
`ExportDefaultDeclarationKind::TSEnumDeclaration` (#3666) (Dunqing)

### Features

- 5a99d30 codegen: Improve codegen formatting (#3735) (Boshen)
- bf9b38a codegen: Improve codegen formatting (#3731) (Boshen)
- 4a004e2 codegen: Print TSImport remaining fields (#3695) (Dunqing)
- a56cb1b codegen: Print accessibility for MethodDefinition (#3690)
(Dunqing)
- 38a75e5 coverage: Improve codegen (#3729) (Boshen)
- 750a534 coverage: Transformer idempotency test (#3691) (Boshen)
- ee627c3 isolated-declarations: Create unique name for `_default`
(#3730) (Dunqing)
- 81e9526 isolated-declarations: Inferring set accessor parameter type
from get accessor return type (#3725) (Dunqing)
- 77d5533 isolated-declarations: Report errors that are consistent with
typescript. (#3720) (Dunqing)
- 8f5655d linter: Add eslint/no-useless-constructor (#3594) (Don Isaac)
- 046ff3f linter/eslint: Add `no_unreachable` rule. (#3238) (rzvxa)
- 0b8098a napi: Isolated-declaration (#3718) (Boshen)
- 527bfc8 npm/oxc-transform: Setup npm/oxc-transform and publish
(Boshen)
- d65c652 parser: Display jsx mismatch error, e.g. `<Foo></Bar>` (#3696)
(Boshen)
- 9c31ed9 semantic/cfg: Propagate unreachable edges through subgraphs.
(#3648) (rzvxa)
- d9c5b33 semantic/cfg: Add `Condition` instruction. (#3567) (Ali
Rezvani)
- f2dfd66 semantic/cfg: Add iteration instructions. (#3566) (rzvxa)
- 910193e transformer-dts: Report error for super class (#3711)
(Dunqing)
- 413d7be transformer-dts: Transform enum support (#3710) (Dunqing)
- 35c382e transformer-dts: Remove type annotation from private field
(#3689) (Dunqing)
- 0e6d3ce transformer-dts: Report error for async function and generator
(#3688) (Dunqing)
- b22b59a transformer-dts: Transform namespace support (#3683) (Dunqing)
- 4f2db46 transformer-dts: `--isolatedDeclarations` dts transform
(#3664) (Dunqing)

### Bug Fixes

- 2158268 ast: Incorrect visit order in function (#3681) (Dunqing)
- da1e2d0 codegen: Improve typescript codegen (#3708) (Boshen)
- f1b793f isolated-declarations: Function overloads reaching unreachable
(#3739) (Dunqing)
- 0fbecdc isolated-declarations: Should be added to references, not
bindings (#3726) (Dunqing)
- 8f64d99 minifier: Respect `join_vars: false` option (#3724)
(mysteryven)
- 70fc69b semantic: Add Eq to CtxFlags (#3651) (Yuji Sugiura)
- 7a58fec semantic/cfg: Issue in unlabeled `Ctx`s. (#3678) (rzvxa)
- abd6ac8 semantic/cfg: Discrete finalization path after `NewFunction`s.
(#3671) (rzvxa)
- e148a32 semantic/cfg: Correct unreachability propagation in
try-finally. (#3667) (Ali Rezvani)
- 59666e0 transformer: Do not rename accessible identifier references
(#3623) (Dunqing)
- 90743e2 traverse: Change visit order for `Function` (#3685)
(overlookmotel)

### Performance

- 2717a1a semantic/cfg: Lower the visits in
`neighbors_filtered_by_edge_weight`. (#3676) (rzvxa)

### Refactor

- fa7a6ba codegen: Add `gen` method to ast nodes (#3687) (Boshen)
- 09b92b6 codegen: Move `gen_ts` into `gen` to make searching things
easier (#3680) (Boshen)
- 3c59735 isolated-declarations: Remove `TransformDtsCtx` (#3719)
(Boshen)
- 815260e isolated-declarations: Decouple codegen (#3715) (Boshen)
- 7ec44f8 semantic: Rename `cfg` macro to `control_flow`. (#3742)
(rzvxa)
- d8ad321 semantic: Make control flow generation optional. (#3737)
(rzvxa)
- a94a72d semantic: Expose 1 checker function instead of 2 (#3694)
(Boshen)
- bd8d115 semantic/cfg: Remove unused types. (#3677) (rzvxa)
- f702fb9 semantic/cfg: Cleanup control flow and it's builder. (#3650)
(rzvxa)
- 4f16664 transformer_dts: Create a `Program` for codegen (#3679)
(Boshen)

Co-authored-by: Boshen <Boshen@users.noreply.github.com>
@overlookmotel
Copy link
Contributor

Too much variance coming from a small benchmark file, I'll look into it tomorrow.

My guess is the variance is coming from SourcemapBuilder::generate_line_offset_tables which builds a large Vec. There's a large Vec reallocation (RawVec::grow_one followed by memcpy) at start of the flamegraph. If by chance the global allocator says that Vec can grow in place, then the memcpy would disappear, which would be a large jump in perf. But whether that happens or not will be non-deterministic depending on state of global allocator (or even the OS).

That's just a guess, though...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0-merge Merge with Graphite Merge Queue A-semantic Area - Semantic
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants