Skip to content

Keep obj node for struct ArrayIndex. - #54584

Merged
sandreenko merged 1 commit into
dotnet:mainfrom
sandreenko:extractfgMorphArrayIndexDiff
Jun 23, 2021
Merged

Keep obj node for struct ArrayIndex.#54584
sandreenko merged 1 commit into
dotnet:mainfrom
sandreenko:extractfgMorphArrayIndexDiff

Conversation

@sandreenko

@sandreenkosandreenko commented Jun 22, 2021

Copy link
Copy Markdown
Contributor

That was the last IND node on the LHS of a struct assignment without structHandle/known size.

There are small regressions because we now create NULLCHECK nodes where before we were keeping ADDR(IND that rationalizer was destroying.

Edited: The diffs are small and they are minopts only (don't create INDEX_ADDR in other cases, thanks @erozenfeld). The issue is similar to #44087 but because it minopts we won't delete the extra node even when the issue is fixed.

***** BB05
STMT00003 (IL 0x00E... ???)
[000016] ---XG+------ * COMMA void - [000013] ---XG+------ +--* ADDR byref - [000012] a--XG+-N---- | \--* IND struct+ [000014] ---XG+------ +--* NULLCHECK int 
[000029] ---XG+------ | \--* INDEX_ADDR byref [000010] -----+------ | +--* LCL_VAR ref V03 tmp1 [000011] -----+------ | \--* CNS_INT int 1
[000015] -----+------ \--* NOP void
lea rax, bword ptr [rax+8*rcx+16]
+cmp dword ptr [rax], eax
mov rax, gword ptr [V01 rbp-08H]

@sandreenkosandreenko added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jun 22, 2021
@sandreenko

Copy link
Copy Markdown
ContributorAuthor

PTAL @BruceForstall this is the last preparation for copyBlock butchery, cc @dotnet/jit-contrib

@sandreenko
sandreenko merged commit 9701ef9 into dotnet:mainJun 23, 2021
@sandreenko
sandreenko deleted the extractfgMorphArrayIndexDiff branch June 23, 2021 01:58
thaystg added a commit to thaystg/runtime that referenced this pull request Jun 23, 2021
…nitial_config
* origin/main: (362 commits)
[wasm][debugger] Reuse debugger-agent on wasm debugger (dotnet#52300)
Put Crossgen2 in sync with dotnet#54235 (dotnet#54438)
Move System.Object serialization to ObjectConverter (dotnet#54436)
Move setting fHasVirtualStaticMethods out of sanity check section (dotnet#54574)
[wasm] Compile .bc->.o in parallel, before passing to the linker (dotnet#54053)
Change PathInternal.IsCaseSensitive to a constant (dotnet#54340)
Make mono_polling_required a public symbol (dotnet#54592)
Respect EventSource::IsSupported setting in more codepaths (dotnet#51977)
Root ComActivator for hosting (dotnet#54524)
Add ILLink annotations to S.D.Common related to DbConnectionStringBuilder (dotnet#54280)
Fix finalizer issue with regions (dotnet#54550)
Add support for multi-arch install locations (dotnet#53763)
Update library testing docs page to reduce confusion (dotnet#54324)
[FileStream] handle UNC and device paths (dotnet#54483)
Update NetAnalyzers version (dotnet#54511)
Added runtime dependency to fix the intermittent test failures (dotnet#54587)
Disable failing System.Reflection.Tests.ModuleTests.GetMethods (dotnet#54564)
[wasm] Move AOT builds from `runtime-staging` to `runtime` (dotnet#54577)
Keep obj node for ArrayIndex. (dotnet#54584)
Disable another failing MemoryCache test (dotnet#54578)
...
@ghostghost locked as resolved and limited conversation to collaborators Jul 23, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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.

2 participants

@sandreenko@BruceForstall