Skip to content

Commit

Permalink
Merge branch 'main' into wasm-sbrk
Browse files Browse the repository at this point in the history
  • Loading branch information
lewing authored Mar 27, 2024
2 parents cc1aa4c + 3a447e4 commit 8b72ae1
Show file tree
Hide file tree
Showing 527 changed files with 24,243 additions and 22,911 deletions.
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
]
},
"microsoft.dotnet.xharness.cli": {
"version": "9.0.0-prerelease.24161.1",
"version": "9.0.0-prerelease.24168.2",
"commands": [
"xharness"
]
Expand Down
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ dotnet_style_readonly_field = true:suggestion
# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_collection_expression = when_types_exactly_match
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
Expand Down
42 changes: 21 additions & 21 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -21,43 +21,43 @@

/src/mono @marek-safar

/src/mono/llvm @vargaz @steveisok
/src/mono/llvm @lambdageek @steveisok

/src/mono/mono/arch @vargaz
/src/mono/mono/eglib @vargaz @lambdageek
/src/mono/mono/arch @lambdageek @steveisok
/src/mono/mono/eglib @lambdageek @steveisok

/src/mono/mono/metadata @vargaz @lambdageek @thaystg
/src/mono/mono/metadata @lambdageek @thaystg
/src/mono/mono/metadata/*-win* @lateralusX @lambdageek
/src/mono/mono/metadata/handle* @lambdageek @vargaz
/src/mono/mono/metadata/monitor* @brzvlad @vargaz
/src/mono/mono/metadata/sgen* @brzvlad @vargaz @lambdageek
/src/mono/mono/metadata/handle* @lambdageek @steveisok
/src/mono/mono/metadata/monitor* @brzvlad @steveisok
/src/mono/mono/metadata/sgen* @brzvlad @lambdageek
/src/mono/mono/metadata/thread* @lateralusX @lambdageek
/src/mono/mono/metadata/w32* @lateralusX @lambdageek

/src/mono/mono/eventpipe @lateralusX @lambdageek

/src/mono/mono/mini @vargaz @lambdageek @steveisok
/src/mono/mono/mini/*cfgdump* @vargaz
/src/mono/mono/mini/*exceptions* @vargaz @BrzVlad
/src/mono/mono/mini/*llvm* @vargaz @fanyang-mono
/src/mono/mono/mini/*ppc* @vargaz
/src/mono/mono/mini @lambdageek @steveisok
/src/mono/mono/mini/*cfgdump* @lambdageek
/src/mono/mono/mini/*exceptions* @BrzVlad
/src/mono/mono/mini/*llvm* @fanyang-mono @steveisok
/src/mono/mono/mini/*ppc* @lambdageek
/src/mono/mono/mini/*profiler* @BrzVlad @lambdageek
/src/mono/mono/mini/*riscv* @vargaz @lambdageek
/src/mono/mono/mini/*type-check* @lambdageek
/src/mono/mono/mini/debugger-agent.c @vargaz @thaystg @lambdageek
/src/mono/mono/mini/interp/* @BrzVlad @vargaz @kotlarmilos
/src/mono/mono/mini/*riscv* @lambdageek @steveisok
/src/mono/mono/mini/*type-check* @lambdageek @steveisok
/src/mono/mono/mini/debugger-agent.c @thaystg @lambdageek
/src/mono/mono/mini/interp/* @BrzVlad @kotlarmilos
/src/mono/mono/mini/interp/*jiterp* @kg
/src/mono/mono/mini/*simd* @fanyang-mono

/src/mono/mono/profiler @BrzVlad @lambdageek
/src/mono/mono/sgen @BrzVlad @lambdageek

/src/mono/mono/utils @vargaz @lambdageek
/src/mono/mono/utils @lambdageek @steveisok
/src/mono/mono/utils/*-win* @lateralusX @lambdageek
/src/mono/mono/utils/atomic* @vargaz
/src/mono/mono/utils/mono-hwcap* @vargaz
/src/mono/mono/utils/mono-mem* @vargaz
/src/mono/mono/utils/mono-threads* @lambdageek @vargaz
/src/mono/mono/utils/atomic* @lambdageek @steveisok
/src/mono/mono/utils/mono-hwcap* @lambdageek
/src/mono/mono/utils/mono-mem* @lambdageek @steveisok
/src/mono/mono/utils/mono-threads* @lambdageek

/src/mono/dlls @thaystg @lambdageek

Expand Down
13 changes: 6 additions & 7 deletions .github/policies/resourceManagement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,8 @@ configuration:
then:
- mentionUsers:
mentionees:
- SamMonoRT
- vargaz
- lambdageek
- steveisok
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand All @@ -187,8 +187,8 @@ configuration:
then:
- mentionUsers:
mentionees:
- SamMonoRT
- vargaz
- lambdageek
- steveisok
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand All @@ -200,8 +200,8 @@ configuration:
then:
- mentionUsers:
mentionees:
- SamMonoRT
- fanyang-mono
- steveisok
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand All @@ -213,8 +213,7 @@ configuration:
then:
- mentionUsers:
mentionees:
- SamMonoRT
- vargaz
- steveisok
- lambdageek
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand Down
2 changes: 1 addition & 1 deletion .vsconfig
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
"Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows10SDK.20348",
"Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
"Microsoft.VisualStudio.Workload.CoreEditor",
Expand Down
12 changes: 6 additions & 6 deletions docs/area-owners.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ Note: Editing this file doesn't update the mapping used by `@msftbot` for area-s
| area-AssemblyLoader-mono | @agocke | @agocke @elinor-fung | |
| area-Build-mono | @lewing | @akoeplinger | |
| area-Codeflow | @dotnet/dnr-codeflow | @dotnet/dnr-codeflow | Used for automated PRs that ingest code from other repos |
| area-Codegen-AOT-mono | @steveisok | @vargaz @kotlarmilos | |
| area-Codegen-AOT-mono | @steveisok | @kotlarmilos | |
| area-CodeGen-coreclr | @JulieLeeMSFT | @BruceForstall @dotnet/jit-contrib | |
| area-Codegen-Interpreter-mono | @vitek-karas | @BrzVlad @kotlarmilos | |
| area-Codegen-Intrinsics-mono | @steveisok | @fanyang-mono | |
| area-Codegen-JIT-mono | @steveisok | @vargaz | |
| area-Codegen-LLVM-mono | @steveisok | @vargaz | |
| area-Codegen-meta-mono | @steveisok | @vargaz | |
| area-Codegen-JIT-mono | @steveisok | | |
| area-Codegen-LLVM-mono | @steveisok | | |
| area-Codegen-meta-mono | @steveisok | | |
| area-CrossGen/NGEN-coreclr | @steveisok | @dotnet/crossgen-contrib | |
| area-crossgen2-coreclr | @steveisok | @dotnet/crossgen-contrib | |
| area-Debugger-mono | @tommcdon | @thaystg | |
Expand Down Expand Up @@ -167,9 +167,9 @@ Note: Editing this file doesn't update the mapping used by `@msftbot` for area-s
| os-android | @vitek-karas | @akoeplinger | |
| os-freebsd | | @wfurt @Thefrank @sec | |
| os-maccatalyst | @vitek-karas | @kotlarmilos | |
| os-ios | @vitek-karas | @vargaz, @kotlarmilos | |
| os-ios | @vitek-karas | @kotlarmilos | |
| os-tizen | @gbalykov | @dotnet/samsung | |
| os-tvos | @vitek-karas | @vargaz, @kotlarmilos | |
| os-tvos | @vitek-karas | @kotlarmilos | |
| os-wasi | @lewing | @pavelsavara | |
| os-browser | @lewing | @pavelsavara | |

Expand Down
7 changes: 0 additions & 7 deletions docs/design/coreclr/jit/first-class-structs.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,6 @@ encountered by most phases of the JIT:
if it's a promoted struct field, or to a `GT_LCL_FLD` or GT_IND` by `fgMorphField()`.
* Proposed: A non-promoted struct typed field should be transformed into a `GT_OBJ`, so that consistently all struct
nodes, even r-values, have `ClassLayout`.
* `GT_MKREFANY`: This produces a "known" struct type, which is currently obtained by
calling `impGetRefAnyClass()` which is a call over the JIT/EE interface. This node is always
eliminated, and its source address used to create a copy. If it is on the rhs
of an assignment, it will be eliminated during the importer. If it is a call argument it will
be eliminated during morph.
* The presence of any of these in a method disables struct promotion. See `case CEE_MKREFANY` in the
`Importer`, where it is asserted that these are rare, and therefore not worth the trouble to handle.

### Struct “objects” as lvalues

Expand Down
8 changes: 4 additions & 4 deletions docs/design/coreclr/jit/jit-call-morphing.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,10 @@ we force that argument and any previous argument that is marked with any of the
we haven't marked as needing a temp but still need to store in the outgoing args
area is marked as needing a placeholder temp using `needPlace`.
3. We force any arguments that use `localloc` to be evaluated into temps.
4. We mark any address taken locals with the `GTF_GLOB_REF` flag. For two special
cases we call `SetNeedsTemp()` and set up the temp in `fgMorphArgs`. `SetNeedsTemp`
records the tmpNum used and sets `isTmp` so that we handle it like the other temps.
The special cases are for `GT_MKREFANY` and for a `TYP_STRUCT` argument passed by
4. We mark any address taken locals with the `GTF_GLOB_REF` flag. For a special
case we call `SetNeedsTemp()` and set up the temp in `fgMorphArgs`.
`SetNeedsTemp` records the tmpNum used and sets `isTmp` so that we handle it
like the other temps. The special case is for a `TYP_STRUCT` argument passed by
value when we can't optimize away the extra copy.


Expand Down
3 changes: 1 addition & 2 deletions docs/design/coreclr/jit/struct-abi.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,7 @@ This method is responsible for the first part of what is currently `fgMorphArgs(
- Note that the `isSplit` property would evaluate to false on targets where
it is not supported, reducing the need for `ifdef`s (we can rely on the compiler
to eliminate those dead paths).
- Validate that each struct argument is either a `GT_LCL_VAR`, a `GT_OBJ`,
or a `GT_MKREFANY`.
- Validate that each struct argument is either a `GT_LCL_VAR` or a `GT_OBJ`

During the initial `fgMorph` phase, `fgMorphArgs()` does the following:

Expand Down
28 changes: 28 additions & 0 deletions docs/design/datacontracts/GCHandle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Contract GCHandle

This contract allows decoding and reading of GCHandles. This will also include handle enumeration in the future

## Data structures defined by contract
``` csharp
struct DacGCHandle
{
DacGCHandle(TargetPointer value) { Value = value; }
TargetPointer Value;
}
```

## Apis of contract
``` csharp
TargetPointer GetObject(DacGCHandle gcHandle);
```

## Version 1

``` csharp
TargetPointer GetObject(DacGCHandle gcHandle)
{
if (gcHandle.Value == TargetPointer.Null)
return TargetPointer.Null;
return Target.ReadTargetPointer(gcHandle.Value);
}
```
78 changes: 78 additions & 0 deletions docs/design/datacontracts/SList.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Contract SList

This contract allows reading and iterating over an SList data structure.

## Data structures defined by contract
``` csharp
class SListReader
{
public abstract TargetPointer GetHead(TargetPointer slistPointer);
public abstract TargetPointer GetNext(TargetPointer entryInSList);
public IEnumerator<TargetPointer> EnumerateList(TargetPointer slistPointer)
{
TargetPointer current = GetHead(slistPointer);

while (current != TargetPointer.Null)
{
yield return current;
current = GetNext(current);
}
}
public IEnumerator<TargetPointer> EnumerateListFromEntry(TargetPointer entryInSList)
{
TargetPointer current = entryInSList;

while (current != TargetPointer.Null)
{
yield return current;
current = GetNext(current);
}
}
}
```

## Apis of contract
``` csharp
SListReader GetReader(string typeOfDataStructure);
```

## Version 1

``` csharp
private class SListReaderV1 : SListReader
{
uint _offsetToSLinkField;
Target Target;

SListReaderV1(Target target, string typeToEnumerate)
{
Target = target;
_offsetToSLinkField = Target.Contracts.GetFieldLayout(typeToEnumerate, "m_Link").Offset;
}
public override TargetPointer GetHead(TargetPointer slistPointer)
{
TargetPointer headPointer = new SListBase(Target, slistPointer).m_pHead;
TargetPointer slinkInHeadObject = new SLink(Target, headPointer).m_pNext;
if (slinkInHeadObject == TargetPointer.Null)
return TargetPointer.Null;
return slinkInHeadObject - _offsetToSLinkField;
}

public override TargetPointer GetNext(TargetPointer entryInSList)
{
if (entryInSList == TargetPointer.Null)
throw new ArgumentException();

TargetPointer slinkPointer = entryInSList + _offsetToSLinkField;
TargetPointer slinkInObject = new SLink(Target, slinkPointer).m_pNext;
if (slinkInObject == TargetPointer.Null)
return TargetPointer.Null;
return slinkInHeadObject - _offsetToSLinkField;
}
}

SListReader GetReader(string typeOfDataStructure)
{
return new SListReaderV1(typeOfDataStructure);
}
```
Loading

0 comments on commit 8b72ae1

Please sign in to comment.