Skip to content

Conversation

@jakobbotsch
Copy link
Member

  • Switch GT_STORE_DYN_BLK to be on the same plan as other indirs; add a gtNewStoreDynBlkNode and use gtInitializeIndirNode to set its flags correctly. Add support for it to GenTree::SetIndirExceptionFlags. Remove conservative flag setting from its constructor.
  • Fix propagation of GTF_EXCEPT from GT_CMPXCHG's data source inside GenTree::SetIndirExceptionFlags
  • Set flags directly from the source node in gtCloneExpr

Fix #97524

…gtCloneExpr`

- Switch `GT_STORE_DYN_BLK` to be on the same plan as other indirs; add
  a `gtNewStoreDynBlkNode` and use `gtInitializeIndirNode` to set its
  flags correctly. Add support for it to
  `GenTree::SetIndirExceptionFlags`. Remove conservative flag setting from its
  constructor.
- Fix propagation of `GTF_EXCEPT` from `GT_CMPXCHG`'s data source inside
  `GenTree::SetIndirExceptionFlags`
- Set flags directly from the source node in `gtCloneExpr`

Fix dotnet#97524
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 26, 2024
@ghost ghost assigned jakobbotsch Jan 26, 2024
@ghost
Copy link

ghost commented Jan 26, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details
  • Switch GT_STORE_DYN_BLK to be on the same plan as other indirs; add a gtNewStoreDynBlkNode and use gtInitializeIndirNode to set its flags correctly. Add support for it to GenTree::SetIndirExceptionFlags. Remove conservative flag setting from its constructor.
  • Fix propagation of GTF_EXCEPT from GT_CMPXCHG's data source inside GenTree::SetIndirExceptionFlags
  • Set flags directly from the source node in gtCloneExpr

Fix #97524

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@ryujit-bot
Copy link

Diff results for #97541

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

MinOpts (+0.00% to +0.01%)
Collection PDIFF
libraries.pmi.linux.arm64.checked.mch +0.01%

Throughput diffs for linux/x64 ran on windows/x64

MinOpts (+0.00% to +0.02%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.01%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.02%
realworld.run.linux.x64.checked.mch +0.01%

Throughput diffs for osx/arm64 ran on windows/x64

MinOpts (+0.00% to +0.01%)
Collection PDIFF
libraries.pmi.osx.arm64.checked.mch +0.01%
realworld.run.osx.arm64.checked.mch +0.01%

Throughput diffs for windows/arm64 ran on windows/x64

MinOpts (+0.00% to +0.01%)
Collection PDIFF
libraries.pmi.windows.arm64.checked.mch +0.01%
realworld.run.windows.arm64.checked.mch +0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.01%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.01%
benchmarks.run.windows.x64.checked.mch +0.01%
benchmarks.run_pgo.windows.x64.checked.mch +0.01%
benchmarks.run_tiered.windows.x64.checked.mch +0.01%
coreclr_tests.run.windows.x64.checked.mch +0.01%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.01%
libraries_tests.run.windows.x64.Release.mch +0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.01%
realworld.run.windows.x64.checked.mch +0.01%
smoke_tests.nativeaot.windows.x64.checked.mch +0.01%
MinOpts (+0.00% to +0.03%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.01%
benchmarks.run_pgo.windows.x64.checked.mch +0.01%
benchmarks.run_tiered.windows.x64.checked.mch +0.01%
coreclr_tests.run.windows.x64.checked.mch +0.01%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.03%
libraries_tests.run.windows.x64.Release.mch +0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.01%
realworld.run.windows.x64.checked.mch +0.01%
smoke_tests.nativeaot.windows.x64.checked.mch +0.01%
FullOpts (+0.01%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.01%
benchmarks.run.windows.x64.checked.mch +0.01%
benchmarks.run_pgo.windows.x64.checked.mch +0.01%
benchmarks.run_tiered.windows.x64.checked.mch +0.01%
coreclr_tests.run.windows.x64.checked.mch +0.01%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.01%
libraries_tests.run.windows.x64.Release.mch +0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.01%
realworld.run.windows.x64.checked.mch +0.01%
smoke_tests.nativeaot.windows.x64.checked.mch +0.01%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (+0.00% to +0.01%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.01%
benchmarks.run_pgo.linux.arm.checked.mch +0.01%
benchmarks.run_tiered.linux.arm.checked.mch +0.01%
coreclr_tests.run.linux.arm.checked.mch +0.01%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.01%
libraries_tests.run.linux.arm.Release.mch +0.01%
realworld.run.linux.arm.checked.mch +0.01%
MinOpts (+0.00% to +0.02%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.01%
benchmarks.run_pgo.linux.arm.checked.mch +0.01%
benchmarks.run_tiered.linux.arm.checked.mch +0.01%
coreclr_tests.run.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.02%
libraries_tests.run.linux.arm.Release.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.01%
realworld.run.linux.arm.checked.mch +0.01%
FullOpts (+0.00% to +0.01%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.01%
benchmarks.run_pgo.linux.arm.checked.mch +0.01%
benchmarks.run_tiered.linux.arm.checked.mch +0.01%
coreclr_tests.run.linux.arm.checked.mch +0.01%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.01%
libraries_tests.run.linux.arm.Release.mch +0.01%
realworld.run.linux.arm.checked.mch +0.01%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.01%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.01%
benchmarks.run_pgo.windows.x86.checked.mch +0.01%
benchmarks.run_tiered.windows.x86.checked.mch +0.01%
coreclr_tests.run.windows.x86.checked.mch +0.01%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.01%
libraries_tests.run.windows.x86.Release.mch +0.01%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.01%
realworld.run.windows.x86.checked.mch +0.01%
MinOpts (+0.01% to +0.03%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.01%
benchmarks.run_pgo.windows.x86.checked.mch +0.01%
benchmarks.run_tiered.windows.x86.checked.mch +0.01%
coreclr_tests.run.windows.x86.checked.mch +0.01%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.03%
libraries_tests.run.windows.x86.Release.mch +0.01%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.01%
realworld.run.windows.x86.checked.mch +0.02%
FullOpts (+0.00% to +0.01%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.01%
benchmarks.run_tiered.windows.x86.checked.mch +0.01%
coreclr_tests.run.windows.x86.checked.mch +0.01%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.01%
libraries_tests.run.windows.x86.Release.mch +0.01%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.01%
realworld.run.windows.x86.checked.mch +0.01%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch +0.05%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.03%
MinOpts (+0.00% to +0.08%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
realworld.run.linux.arm64.checked.mch +0.04%
libraries.crossgen2.linux.arm64.checked.mch +0.02%
libraries_tests.run.linux.arm64.Release.mch +0.04%
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.08%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
FullOpts (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch +0.05%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
libraries.pmi.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.04%

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.03% to +0.06%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.04%
coreclr_tests.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.06%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
realworld.run.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.05%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries.pmi.linux.x64.checked.mch +0.04%
MinOpts (+0.00% to +0.09%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
coreclr_tests.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.05%
realworld.run.linux.x64.checked.mch +0.06%
benchmarks.run_tiered.linux.x64.checked.mch +0.05%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries.pmi.linux.x64.checked.mch +0.09%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.04%
coreclr_tests.run.linux.x64.checked.mch +0.04%
benchmarks.run_pgo.linux.x64.checked.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.06%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
realworld.run.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.05%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries.pmi.linux.x64.checked.mch +0.04%

Details here


@jakobbotsch
Copy link
Member Author

/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress, Fuzzlyn

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@jakobbotsch jakobbotsch marked this pull request as ready for review January 26, 2024 14:58
@jakobbotsch
Copy link
Member Author

cc @dotnet/jit-contrib PTAL @EgorBo @SingleAccretion

No diffs

assert(data->IsInitVal() || data->OperIs(GT_IND));

GenTreeStoreDynBlk* store = new (this, GT_STORE_DYN_BLK) GenTreeStoreDynBlk(addr, data, dynamicSize);
store->gtFlags |= GTF_ASG;
Copy link
Member

Choose a reason for hiding this comment

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

nit: it's already set in GenTreeStoreDynBlk ctror

Copy link
Member Author

Choose a reason for hiding this comment

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

I removed that in this PR (just to make it consistent with gtNewStoreBlkNode)

Copy link
Member

Choose a reason for hiding this comment

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

ah, I am blind

@jakobbotsch jakobbotsch merged commit eab0939 into dotnet:main Jan 26, 2024
@jakobbotsch jakobbotsch deleted the fix-97524 branch January 26, 2024 19:35
@github-actions github-actions bot locked and limited conversation to collaborators Feb 26, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

JIT: Assertion failed '!"Extra flags on tree"' during 'Post-Morph'

4 participants