Skip to content

Commit

Permalink
Merge branch 'main' into adjust-rtt-logic
Browse files Browse the repository at this point in the history
  • Loading branch information
antonfirsov authored Feb 3, 2024
2 parents 63c5ebd + df0778d commit 7064b1f
Show file tree
Hide file tree
Showing 38 changed files with 1,266 additions and 790 deletions.
2 changes: 2 additions & 0 deletions eng/Subsets.props
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@
'$(BuildTargetFramework)' == '' or
'$(BuildAllConfigurations)' == 'true'">libs.native+</DefaultLibrariesSubsets>
<DefaultLibrariesSubsets>$(DefaultLibrariesSubsets)libs.sfx+libs.oob+libs.pretest</DefaultLibrariesSubsets>
<!-- Respect the DotNetBuildTests product flag when building the product. -->
<DefaultLibrariesSubsets Condition="'$(DotNetBuildTests)' == 'true'">$(DefaultLibrariesSubsets)+libs.tests</DefaultLibrariesSubsets>

<DefaultToolsSubsets>tools.illink</DefaultToolsSubsets>

Expand Down
39 changes: 36 additions & 3 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
<Uri>https://github.com/dotnet/command-line-api</Uri>
<Sha>a045dd54a4c44723c215d992288160eb1401bb7f</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.command-line-api" Version="0.1.440701">
<Uri>https://github.com/dotnet/command-line-api</Uri>
<Sha>a045dd54a4c44723c215d992288160eb1401bb7f</Sha>
Expand All @@ -92,28 +93,45 @@
<Dependency Name="Microsoft.DotNet.Cecil" Version="0.11.4-alpha.24065.1">
<Uri>https://github.com/dotnet/cecil</Uri>
<Sha>b8c2293cd1cbd9d0fe6f32d7b5befbd526b5a175</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.cecil" Version="0.11.4-alpha.24065.1">
<Uri>https://github.com/dotnet/cecil</Uri>
<Sha>b8c2293cd1cbd9d0fe6f32d7b5befbd526b5a175</Sha>
<SourceBuild RepoName="cecil" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-preview.2.24079.1">
<Uri>https://github.com/dotnet/emsdk</Uri>
<Sha>c7b4dbc857259968a0892cf94cfa9ae4f2ca53cd</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="9.0.0-preview.2.24079.1">
<Uri>https://github.com/dotnet/emsdk</Uri>
<Sha>c7b4dbc857259968a0892cf94cfa9ae4f2ca53cd</Sha>
<SourceBuild RepoName="emsdk" ManagedOnly="true" />
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.24075.1">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>e659f328bf255d3e17e81296117c3aed1d461f2f</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.24079.1">
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.24101.1">
<Uri>https://github.com/dotnet/source-build-externals</Uri>
<Sha>9f553c88e8a6787c560ab3e7adec226311de7e2c</Sha>
<Sha>949db2fd23b687c0d545e954943feada8b361ed6</Sha>
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24081.4">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>438a8e2488313fb3aa1b24a741a85c2669ee7e0d</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24081.4">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>438a8e2488313fb3aa1b24a741a85c2669ee7e0d</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24081.4">
Expand Down Expand Up @@ -315,6 +333,11 @@
<Dependency Name="System.Text.Json" Version="9.0.0-alpha.1.24072.1">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>205ef031e0fe5152dede0bd9f99d0f6f9e7f1e45</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.runtime" Version="9.0.0-alpha.1.24072.1">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>205ef031e0fe5152dede0bd9f99d0f6f9e7f1e45</Sha>
<SourceBuild RepoName="runtime" ManagedOnly="false" />
</Dependency>
<Dependency Name="Microsoft.DotNet.ILCompiler" Version="9.0.0-alpha.1.24072.1">
Expand Down Expand Up @@ -368,7 +391,6 @@
<Dependency Name="Microsoft.CodeAnalysis" Version="4.10.0-1.24069.13">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>2fe96bca1092f880e91eea6eb17ea3487d89309a</Sha>
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.CSharp" Version="4.10.0-1.24069.13">
<Uri>https://github.com/dotnet/roslyn</Uri>
Expand All @@ -382,9 +404,20 @@
<Uri>https://github.com/dotnet/roslyn-analyzers</Uri>
<Sha>e39798fc8357615ab319c81b20acfb036ef7b513</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.roslyn" Version="4.10.0-1.24069.13">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>2fe96bca1092f880e91eea6eb17ea3487d89309a</Sha>
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.ApiCompat.Task" Version="9.0.100-alpha.1.24072.3">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>de4f12b8ab6692b01776d362f4fa609fd3f1154a</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.sdk" Version="9.0.100-alpha.1.24072.3">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>de4f12b8ab6692b01776d362f4fa609fd3f1154a</Sha>
<SourceBuild RepoName="sdk" ManagedOnly="true" />
</Dependency>
<Dependency Name="optimization.windows_nt-arm64.MIBC.Runtime" Version="1.0.0-prerelease.24071.2">
Expand Down
2 changes: 2 additions & 0 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
<UsingToolIbcOptimization>false</UsingToolIbcOptimization>
<UsingToolXliff>false</UsingToolXliff>
<FlagNetStandard1XDependencies Condition="'$(FlagNetStandard1XDependencies)' == ''">true</FlagNetStandard1XDependencies>
<!-- Runtime controls its dependency graph via Traversal projects and doesn't want or need Arcade's ExcludeFrom infrastructure. -->
<DisableArcadeExcludeFromBuildSupport>true</DisableArcadeExcludeFromBuildSupport>
<!-- Use SDK compilers in full source-build. -->
<UsingToolMicrosoftNetCompilers Condition="'$(DotNetBuildFromSourceFlavor)' != 'Product'">true</UsingToolMicrosoftNetCompilers>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/coreclr/jit/block.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ bool BasicBlock::IsFirstColdBlock(Compiler* compiler) const
bool BasicBlock::CanRemoveJumpToNext(Compiler* compiler) const
{
assert(KindIs(BBJ_ALWAYS));
return JumpsToNext() && !hasAlign() && !compiler->fgInDifferentRegions(this, bbTarget);
return JumpsToNext() && (bbNext != compiler->fgFirstColdBlock);
}

//------------------------------------------------------------------------
Expand Down
40 changes: 40 additions & 0 deletions src/coreclr/jit/codegenarm64test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5273,6 +5273,20 @@ void CodeGen::genArm64EmitterUnitTestsSve()
theEmitter->emitIns_R_PATTERN_I(INS_sve_cnth, EA_8BYTE, REG_R5, SVE_PATTERN_ALL,
13); // CNTH <Xd>{, <pattern>{, MUL #<imm>}}

// IF_SVE_CI_3A
theEmitter->emitIns_R_R_R(INS_sve_trn1, EA_SCALABLE, REG_P1, REG_P3, REG_P4,
INS_OPTS_SCALABLE_B); // TRN1 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
theEmitter->emitIns_R_R_R(INS_sve_trn2, EA_SCALABLE, REG_P5, REG_P2, REG_P7,
INS_OPTS_SCALABLE_H); // TRN2 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
theEmitter->emitIns_R_R_R(INS_sve_uzp1, EA_SCALABLE, REG_P0, REG_P0, REG_P0,
INS_OPTS_SCALABLE_S); // UZP1 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
theEmitter->emitIns_R_R_R(INS_sve_uzp2, EA_SCALABLE, REG_P0, REG_P0, REG_P0,
INS_OPTS_SCALABLE_D); // UZP2 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
theEmitter->emitIns_R_R_R(INS_sve_zip1, EA_SCALABLE, REG_P0, REG_P0, REG_P0,
INS_OPTS_SCALABLE_B); // ZIP1 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
theEmitter->emitIns_R_R_R(INS_sve_zip2, EA_SCALABLE, REG_P0, REG_P0, REG_P0,
INS_OPTS_SCALABLE_H); // ZIP2 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>

// IF_SVE_CL_3A
theEmitter->emitIns_R_R_R(INS_sve_compact, EA_SCALABLE, REG_V16, REG_P7, REG_V13,
INS_OPTS_SCALABLE_S); // COMPACT <Zd>.<T>, <Pg>, <Zn>.<T>
Expand Down Expand Up @@ -5665,6 +5679,26 @@ void CodeGen::genArm64EmitterUnitTestsSve()
theEmitter->emitIns_R_R_R(INS_sve_whilewr, EA_8BYTE, REG_P7, REG_R14, REG_R15,
INS_OPTS_SCALABLE_D); // WHILEWR <Pd>.<T>, <Xn>, <Xm>

// IF_SVE_DW_2A
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P0, REG_P8, 0,
INS_OPTS_SCALABLE_B); // PEXT <Pd>.<T>, <PNn>[<imm>]
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P1, REG_P9, 1,
INS_OPTS_SCALABLE_H); // PEXT <Pd>.<T>, <PNn>[<imm>]
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P2, REG_P10, 2,
INS_OPTS_SCALABLE_S); // PEXT <Pd>.<T>, <PNn>[<imm>]
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P3, REG_P11, 3,
INS_OPTS_SCALABLE_D); // PEXT <Pd>.<T>, <PNn>[<imm>]

// IF_SVE_DW_2B
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P8, REG_P12, 0, INS_OPTS_SCALABLE_B,
INS_SCALABLE_OPTS_WITH_PREDICATE_PAIR); // PEXT {<Pd1>.<T>, <Pd2>.<T>}, <PNn>[<imm>]
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P9, REG_P13, 1, INS_OPTS_SCALABLE_H,
INS_SCALABLE_OPTS_WITH_PREDICATE_PAIR); // PEXT {<Pd1>.<T>, <Pd2>.<T>}, <PNn>[<imm>]
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P10, REG_P14, 0, INS_OPTS_SCALABLE_S,
INS_SCALABLE_OPTS_WITH_PREDICATE_PAIR); // PEXT {<Pd1>.<T>, <Pd2>.<T>}, <PNn>[<imm>]
theEmitter->emitIns_R_R_I(INS_sve_pext, EA_SCALABLE, REG_P11, REG_P15, 1, INS_OPTS_SCALABLE_D,
INS_SCALABLE_OPTS_WITH_PREDICATE_PAIR); // PEXT {<Pd1>.<T>, <Pd2>.<T>}, <PNn>[<imm>]

// IF_SVE_DX_3A
theEmitter->emitIns_R_R_R(INS_sve_whilege, EA_8BYTE, REG_P0, REG_R0, REG_R1, INS_OPTS_SCALABLE_B,
INS_SCALABLE_OPTS_WITH_PREDICATE_PAIR); // WHILEGE {<Pd1>.<T>, <Pd2>.<T>}, <Xn>, <Xm>
Expand Down Expand Up @@ -5750,6 +5784,12 @@ void CodeGen::genArm64EmitterUnitTestsSve()
theEmitter->emitIns_R_I(INS_sve_mov, EA_SCALABLE, REG_V7, 127, INS_OPTS_SCALABLE_D,
INS_SCALABLE_OPTS_SHIFT); // MOV <Zd>.<T>, #<imm>{, <shift>}

// IF_SVE_EB_1B
theEmitter->emitIns_R(INS_sve_fmov, EA_SCALABLE, REG_V0, INS_OPTS_SCALABLE_B); // FMOV <Zd>.<T>, #0.0
theEmitter->emitIns_R(INS_sve_fmov, EA_SCALABLE, REG_V1, INS_OPTS_SCALABLE_H); // FMOV <Zd>.<T>, #0.0
theEmitter->emitIns_R(INS_sve_fmov, EA_SCALABLE, REG_V2, INS_OPTS_SCALABLE_S); // FMOV <Zd>.<T>, #0.0
theEmitter->emitIns_R(INS_sve_fmov, EA_SCALABLE, REG_V3, INS_OPTS_SCALABLE_D); // FMOV <Zd>.<T>, #0.0

// IF_SVE_EC_1A
theEmitter->emitIns_R_I(INS_sve_add, EA_SCALABLE, REG_V0, 0,
INS_OPTS_SCALABLE_B); // ADD <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
Expand Down
4 changes: 3 additions & 1 deletion src/coreclr/jit/codegenlinear.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,7 @@ void CodeGen::genCodeForBBlist()

/* Do we need to generate a jump or return? */

bool removedJmp = false;
switch (block->GetKind())
{
case BBJ_RETURN:
Expand Down Expand Up @@ -765,6 +766,7 @@ void CodeGen::genCodeForBBlist()
}
#endif // TARGET_AMD64

removedJmp = true;
break;
}
#ifdef TARGET_XARCH
Expand Down Expand Up @@ -814,7 +816,7 @@ void CodeGen::genCodeForBBlist()
assert(!block->KindIs(BBJ_CALLFINALLY));
#endif // FEATURE_EH_CALLFINALLY_THUNKS

GetEmitter()->emitLoopAlignment(DEBUG_ARG1(block->KindIs(BBJ_ALWAYS)));
GetEmitter()->emitLoopAlignment(DEBUG_ARG1(block->KindIs(BBJ_ALWAYS) && !removedJmp));
}

if (!block->IsLast() && block->Next()->isLoopAlign())
Expand Down
Loading

0 comments on commit 7064b1f

Please sign in to comment.