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

Keep obj node for struct ArrayIndex. #54584

Merged
merged 1 commit into from
Jun 23, 2021

Conversation

sandreenko
Copy link
Contributor

@sandreenko sandreenko commented Jun 22, 2021

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]

@sandreenko sandreenko 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
Contributor Author

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

@sandreenko sandreenko merged commit 9701ef9 into dotnet:main Jun 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)
  ...
@ghost ghost locked as resolved and limited conversation to collaborators Jul 23, 2021
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.

None yet

2 participants